/// <summary> /// Check to see if there are any related Persons, and load them if requested /// </summary> public static void CheckExpandPersons(SqlDataManager sdm, IEnumerable <Company> companies, string expandString) { expandString = expandString.SafeToString(); if (String.Equals(expandString, "all", StringComparison.OrdinalIgnoreCase) || expandString.IndexOf("persons", StringComparison.OrdinalIgnoreCase) >= 0) { var companiesWhere = CreateCompanyWhere(companies, "Company"); var childPersons = sdm.GetAllPersons <Person>(companiesWhere) .OrderBy(orderBy => orderBy.Name) ; companies.ToList() .ForEach(feCompany => feCompany.LoadPersons(childPersons)); } }
public static Person GetPerson(SqlDataManager sdm, Person person) { if (String.IsNullOrEmpty(person.EmailAddress)) { throw new ArgumentException("Invalid Person request - Email Address is required to find a person"); } else if (person.EmailAddress.IndexOf("@") <= 1) { throw new ArgumentException("Invalid person request - Email address is invalid."); } // Lookup the person by their email address var personWhere = string.Format("EmailAddress LIKE '{0}'", person.EmailAddress.ToSqlSafeString()); var dbPerson = sdm.GetAllPersons <Person>(personWhere).FirstOrDefault(); if (ReferenceEquals(dbPerson, null)) { dbPerson = new Person(); dbPerson.Name = person.EmailAddress; dbPerson.EmailAddress = person.EmailAddress; dbPerson.PreferredHandle = person.EmailAddress.Substring(0, person.EmailAddress.IndexOf("@")); dbPerson.IsEmailVerified = false; dbPerson.IsPhoneerified = false; dbPerson.PhoneNumber = String.Empty; dbPerson.SSN = String.Empty; dbPerson.Avatar = dbPerson.GetOrAvatar(sdm); sdm.Insert(dbPerson); } else { dbPerson.Avatar = dbPerson.GetOrAvatar(sdm); } return(dbPerson); }