PageRenderTime 25ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/OrmSmackdown.LLBLGen/Exerciser.cs

#
C# | 224 lines | 148 code | 52 blank | 24 comment | 4 complexity | 623f3e47932f439aee329c9a3dec3188 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using OrmSmackdown.LLBLGen.EntityClasses;
  4. using System.Linq;
  5. using System.Text;
  6. using OrmSmackdown.LLBLGen.Linq;
  7. namespace OrmSmackdown.LLBLGen
  8. {
  9. public class Exerciser : IExerciser
  10. {
  11. private LinqMetaData ctx;
  12. public Exerciser()
  13. {
  14. ctx = new LinqMetaData();
  15. }
  16. public void Insert()
  17. {
  18. var company1 = new EntityClasses.CompaniesEntity() { CompanyName = Constants.Company1 };
  19. var company2 = new EntityClasses.CompaniesEntity() { CompanyName = Constants.Company2 };
  20. var managerRole = new EntityClasses.RolesEntity { RoleName = Constants.ManagerRole, IsForContact = false, IsForPortal = true };
  21. var employeeRole = new EntityClasses.RolesEntity { RoleName = Constants.EmployeeRole, IsForContact = false, IsForPortal = true };
  22. var contactRole = new EntityClasses.RolesEntity { RoleName = Constants.ContactRole, IsForContact = true, IsForPortal = false };
  23. var user1 = new UserEntity { FirstName = Constants.User1FirstName, LastName = Constants.User1LastName, Email = Constants.User1Email, MyRole = managerRole };
  24. var user2 = new UserEntity { FirstName = Constants.User2FirstName, LastName = Constants.User2LastName, Email = Constants.User2Email, MyRole = employeeRole };
  25. var user3 = new UserEntity { FirstName = Constants.User3FirstName, LastName = Constants.User3LastName, Email = Constants.User3Email, MyRole = employeeRole };
  26. var user4 = new UserEntity { FirstName = Constants.User4FirstName, LastName = Constants.User4LastName, Email = Constants.User4Email, MyRole = managerRole };
  27. var user5 = new UserEntity { FirstName = Constants.User5FirstName, LastName = Constants.User5LastName, Email = Constants.User5Email, MyRole = employeeRole };
  28. var contact1 = new ContactEntity { FirstName = Constants.Contact1FirstName, LastName = Constants.Contact1LastName, Email = Constants.Contact1Email, MyRole = contactRole, Company = company1 };
  29. var contact2 = new ContactEntity { FirstName = Constants.Contact2FirstName, LastName = Constants.Contact2LastName, Email = Constants.Contact2Email, MyRole = contactRole, Company = company1 };
  30. var contact3 = new ContactEntity { FirstName = Constants.Contact3FirstName, LastName = Constants.Contact3LastName, Email = Constants.Contact3Email, MyRole = contactRole, Company = company2 };
  31. var contact4 = new ContactEntity { FirstName = Constants.Contact4FirstName, LastName = Constants.Contact4LastName, Email = Constants.Contact4Email, MyRole = contactRole, Company = company2 };
  32. var contact5 = new ContactEntity { FirstName = Constants.Contact5FirstName, LastName = Constants.Contact5LastName, Email = Constants.Contact5Email, MyRole = contactRole, Company = company2 };
  33. var contact6 = new ContactEntity { FirstName = Constants.Contact6FirstName, LastName = Constants.Contact6LastName, Email = Constants.Contact6Email, MyRole = contactRole, Company = company2 };
  34. var portal1 = new PortalsEntity { PortalName = Constants.Portal1, AdminUser = user1 };
  35. var portal2 = new PortalsEntity { PortalName = Constants.Portal2, AdminUser = user4 };
  36. company1.Save();
  37. company2.Save();
  38. managerRole.Save();
  39. employeeRole.Save();
  40. contactRole.Save();
  41. user1.Save();
  42. user2.Save();
  43. user3.Save();
  44. user4.Save();
  45. user5.Save();
  46. contact1.Save();
  47. contact2.Save();
  48. contact3.Save();
  49. contact4.Save();
  50. contact5.Save();
  51. contact6.Save();
  52. portal1.Save(true);
  53. portal2.Save(true);
  54. ///?Not sure why these are saving?
  55. //portal1.PortalUsers.Add(user1);
  56. //portal1.PortalUsers.Add(user2);
  57. //portal2.PortalUsers.Add(user2);
  58. //portal1.PortalUsers.Add(user3);
  59. //portal2.PortalUsers.Add(user3);
  60. //portal2.PortalUsers.Add(user4);
  61. //portal2.PortalUsers.Add(user5);
  62. var ppx11 = new PortalPeopleXrefEntity() { Portal = portal1, Person = user1 };
  63. var ppx21 = new PortalPeopleXrefEntity() { Portal = portal1, Person = user2 };
  64. var ppx22 = new PortalPeopleXrefEntity() { Portal = portal2, Person = user2 };
  65. var ppx31 = new PortalPeopleXrefEntity() { Portal = portal1, Person = user3 };
  66. var ppx32 = new PortalPeopleXrefEntity() { Portal = portal2, Person = user3 };
  67. var ppx42 = new PortalPeopleXrefEntity() { Portal = portal2, Person = user4 };
  68. var ppx52 = new PortalPeopleXrefEntity() { Portal = portal2, Person = user5 };
  69. ppx11.Save();
  70. ppx21.Save();
  71. ppx22.Save();
  72. ppx31.Save();
  73. ppx32.Save();
  74. ppx42.Save();
  75. ppx52.Save();
  76. portal1.PortalUsers.SaveMulti();
  77. portal2.PortalUsers.SaveMulti();
  78. AddAddress( user1, "1000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  79. AddAddress( user2, "2000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  80. AddAddress( user3, "3000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  81. AddAddress( user4, "4000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  82. AddAddress( user5, "5000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  83. AddAddress( user1, "1100 Some St.", string.Empty, Constants.TownWeCareAbout, "ST", "12345", "1234", true);
  84. AddAddress( user2, "1200 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  85. AddAddress( user3, "1300 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  86. AddAddress( user4, "1400 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  87. AddAddress( user5, "1500 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  88. AddAddress( contact1, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  89. AddAddress( contact2, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  90. AddAddress( contact3, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  91. AddAddress( contact4, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  92. AddAddress( contact5, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  93. AddAddress( contact6, "7000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", false);
  94. AddAddress( contact1, "8000 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  95. AddAddress( contact2, "8100 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  96. AddAddress( contact3, "8200 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  97. AddAddress( contact4, "8300 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  98. AddAddress( contact5, "8400 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  99. AddAddress( contact6, "8500 Some St.", string.Empty, Constants.SomeOtherTown, "ST", "12345", "1234", true);
  100. }
  101. private void AddAddress(PeopleEntity p, string line1, string line2, string city, string state, string zip, string zip4, bool isDefault)
  102. {
  103. var addr = new AddressesEntity { Line1 = line1, Line2 = line2, City = city, State = state, ZipCode = zip, ZipCodePlusFour = zip4, IsDefault = isDefault, Person = p };
  104. addr.Save();
  105. }
  106. public IList<string> GetUserEmails()
  107. {
  108. return (from user in ctx.User select user.Email).ToList();
  109. }
  110. public IList<string> GetContactEmails()
  111. {
  112. return (from user in ctx.Contact select user.Email).ToList();
  113. }
  114. public IList<string> GetPortalAdminEmails()
  115. {
  116. return (from portals in ctx.Portals select portals.AdminUser.Email).ToList();
  117. }
  118. public IList<string> GetContactEmailsForCompany(string companyName)
  119. {
  120. return ctx.Companies.Where(cmp => cmp.CompanyName == companyName).FirstOrDefault().People.Select(fld => fld.Email).ToList();
  121. }
  122. public int GetNumberOfPortals()
  123. {
  124. return ctx.Portals.Count();
  125. }
  126. public int GetNumberOfUsers()
  127. {
  128. return ctx.User.Count();
  129. }
  130. public int GetNumberOfContacts()
  131. {
  132. return ctx.Contact.Count();
  133. }
  134. public string GetDefaultCity(string email)
  135. {
  136. // Join seems to generate invalid SQL
  137. //var city = from address in ctx.Addresses
  138. // join usr in ctx.People on address.Person.PersonId equals usr.PersonId
  139. // where address.IsDefault == true && usr.Email == email
  140. // select address.City;
  141. //return city.FirstOrDefault();
  142. var user = ctx.People.Where(p => p.Email == email).FirstOrDefault();
  143. return user.Addresses.Where(a => a.IsDefault == true).FirstOrDefault().City;
  144. }
  145. public string GetAdminForPortal(string portalName)
  146. {
  147. // Join seems to generate invalid SQL
  148. //var email = from prsn in ctx.User
  149. // join prt in ctx.Portals on prsn equals prt.AdminUser
  150. // where prt.PortalName == portalName
  151. // select prsn.Email;
  152. //return email.FirstOrDefault();
  153. var portal = ctx.Portals.Where(prt => prt.PortalName == portalName).FirstOrDefault();
  154. return portal.AdminUser.Email;
  155. }
  156. public double GetAverageUsersPerPortal()
  157. {
  158. //Get error message "Count" isn't mapped to database construct.
  159. //return ctx.Portals.Average(prt => prt.PortalUsers.Count);
  160. var portals = ctx.Portals.ToList();
  161. ///Ehhh... on this one, fairly certain there is a better way, runs three
  162. ///queries, yuk!
  163. int numbUsers = 0;
  164. foreach (var portal in portals)
  165. numbUsers += ((PortalsEntity)portal).PortalUsers.Count;
  166. return (double)numbUsers / (double)portals.Count;
  167. }
  168. public void Dispose()
  169. {
  170. }
  171. }
  172. }