public Person GetPersonByUsername(string userName, PersonIncludes personIncludes) { using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork()) { var personLoginQueryable = unitOfWork.PersonLogins.GetQueryable().Where(p => p.LoginID == userName); if (personLoginQueryable.Any()) { int personId = personLoginQueryable.First().PersonID; return(GetPersonById(personId, personIncludes)); } else { throw new Exception("Person with given username not found"); } } }
public Person GetPerson(int personID, PersonIncludes personIncludes) { // Get the person data from the SQL repository Person person = null; using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork()) { var personQueryable = unitOfWork.Persons.GetQueryable().Where(p => p.PersonID == personID); if (personIncludes.Phones) { personQueryable = personQueryable.Include("Phones"); personQueryable = personQueryable.Include("Phones.PhoneType"); } if (personIncludes.Addressses) { personQueryable = personQueryable.Include("Addresses.Address"); personQueryable = personQueryable.Include("Addresses.AddressType"); } if (personIncludes.Accounts) { personQueryable = personQueryable.Include("Accounts.Account") .Include("Accounts.Account.AccountType"); } if (personIncludes.Login) { personQueryable = personQueryable.Include("Login"); } if (personIncludes.AccountTransactions) { personQueryable = personQueryable.Include("Accounts.Account.Transactions"); personQueryable = personQueryable.Include("Accounts.Account.Transactions.TransactionType"); } person = personQueryable.First(); } return(person); }
public Person GetPersonById(int personID, PersonIncludes personIncludes) { using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork()) { var person = unitOfWork.Persons.Find(personID, personIncludes); if (person != null) { if (personIncludes.Phones) { // Add home phone if not in the person Object if (!person.Phones.Where(p => p.PhoneTypeID == 1).Any()) { person.Phones.Add(new Phone { PhoneTypeID = 1, Number = string.Empty, PhoneType = new PhoneType { Name = "Home" } }); } // Add work phone if not in the person Object if (!person.Phones.Where(p => p.PhoneTypeID == 2).Any()) { person.Phones.Add(new Phone { PhoneTypeID = 2, Number = string.Empty, PhoneType = new PhoneType { Name = "Work" } }); } // Add cell phone if not in the person Object if (!person.Phones.Where(p => p.PhoneTypeID == 3).Any()) { person.Phones.Add(new Phone { PhoneTypeID = 3, Number = string.Empty, PhoneType = new PhoneType { Name = "Cell" } }); } } if (personIncludes.Addressses) { var emptyAddress = new Address { StreetAddress = string.Empty, City = string.Empty, State = string.Empty, Zip = string.Empty }; if (!person.Addresses.Where(a => a.AddressTypeID == 1).Any()) { person.Addresses.Add(new PersonAddressAssn { AddressTypeID = 1, Address = emptyAddress, AddressType = new AddressType { Name = "Home" } }); } if (!person.Addresses.Where(a => a.AddressTypeID == 2).Any()) { person.Addresses.Add(new PersonAddressAssn { AddressTypeID = 2, Address = emptyAddress, AddressType = new AddressType { Name = "Work" } }); } if (!person.Addresses.Where(a => a.AddressTypeID == 3).Any()) { person.Addresses.Add(new PersonAddressAssn { AddressTypeID = 3, Address = emptyAddress, AddressType = new AddressType { Name = "Alternate" } }); } } if (personIncludes.Login && person.Login == null) { person.Login = new PersonLogin(); } } return(person); } }