Ejemplo n.º 1
0
        public static People FromIdentities(int[] personIds)
        {
            if (personIds.Length > 500)
            {
                // If over fivehundred identities are requested, we won't pass the array to
                // SQL Server. Rather, we'll get ALL the people and parse the list ourselves.

                Dictionary <int, bool> lookup = new Dictionary <int, bool>();

                foreach (int key in personIds)
                {
                    lookup[key] = true;
                }

                BasicPerson[] basicArray = SwarmDb.GetDatabaseForReading().GetAllPeople();
                People        result     = new People();

                for (int index = 0; index < basicArray.Length; index++)
                {
                    if (lookup.ContainsKey(basicArray[index].Identity))
                    {
                        result.Add(Person.FromBasic(basicArray[index]));
                    }
                }

                return(result);
            }
            return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeople(personIds)));
        }
Ejemplo n.º 2
0
        public static People FromNamePattern(string namePattern)
        {
            if (namePattern.Trim().Length < 3)
            {
                return(new People());
            }

            return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromNamePattern(namePattern)));
        }
Ejemplo n.º 3
0
        public static People FromMail(string email)
        {
            if (email.Length > 0)
            {
                return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromEmail(email)));
            }

            return(null); // If no valid search string was supplied
        }
Ejemplo n.º 4
0
        public static People FromPostalCodes(string[] pcodes)
        {
            // Remove any injection codes
            if (pcodes.Length > 0)
            {
                return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromPostalCodes(pcodes)));
            }

            return(null); // If no valid search string was supplied
        }
Ejemplo n.º 5
0
        public static People FromCityPattern(string cityPattern)
        {
            // Remove any injection codes
            cityPattern = cityPattern.Replace("%", String.Empty).Trim();

            if (cityPattern.Length > 0)
            {
                cityPattern = "%" + cityPattern + "%";

                return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromCityPattern(cityPattern)));
            }

            return(null); // If no valid search string was supplied
        }
Ejemplo n.º 6
0
        public static People FromEmailPattern (string emailPattern)
        {
            // Remove any injection codes
            emailPattern = emailPattern.Replace ("%", String.Empty).Trim();

            if (emailPattern.Length > 0)
            {
                emailPattern = "%" + emailPattern + "%";

                return People.FromArray (SwarmDb.GetDatabaseForReading().GetPeopleFromEmailPattern (emailPattern));
            }

            return null; // If no valid search string was supplied
        }
Ejemplo n.º 7
0
        private static People FilterByApplicant(BasicPerson[] candidates, Organization organization)
        {
            // Get the organization tree

            Organizations orgTree = organization.ThisAndBelow();

            // Build a lookup table of this organization tree. For each person in 'people'
            // that has at least one membership in an organization in the lookup table,
            // add that person to the final result.

            Dictionary <int, BasicOrganization> lookup = new Dictionary <int, BasicOrganization>();

            foreach (Organization org in orgTree)
            {
                lookup[org.Identity] = org;
            }

            // Get the list of all memberships

            Dictionary <int, List <BasicApplicant> > applicants =
                SwarmDb.GetDatabaseForReading()
                .GetApplicantsFromPeople(People.FromArray(candidates).Identities);

            People result = new People();

            foreach (BasicPerson basicPerson in candidates)
            {
                bool applicantToOrganization = false;

                if (applicants.ContainsKey(basicPerson.Identity))
                {
                    foreach (BasicApplicant applicant in applicants[basicPerson.Identity])
                    {
                        if (lookup.ContainsKey(applicant.OrganizationId))
                        {
                            applicantToOrganization = true;
                        }
                    }
                }

                if (applicantToOrganization)
                {
                    result.Add(Person.FromBasic(basicPerson));
                }
            }

            return(result);
        }
Ejemplo n.º 8
0
 public static People FromBirthDatePattern(DateTime fromdate, DateTime todate)
 {
     return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromBirthdate(fromdate, todate)));
 }
Ejemplo n.º 9
0
 public static People GetAll()
 {
     return(People.FromArray(SwarmDb.GetDatabaseForReading().GetAllPeople()));
 }
Ejemplo n.º 10
0
 public static People FromPhoneNumber(string countryCode, string phoneNumber)
 {
     return(People.FromArray(SwarmDb.GetDatabaseForReading().GetPeopleFromPhoneNumber(countryCode, phoneNumber)));
 }
Ejemplo n.º 11
0
 public static People FromPhoneNumber (int countryId, string phoneNumber)
 {
     return People.FromArray (SwarmDb.GetDatabaseForReading().GetPeopleFromPhoneNumber (countryId, phoneNumber));
 }