/// <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));
            }
        }
示例#2
0
        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);
        }