Exemple #1
0
        public static People GetActivists(Organization organization, Geography geography)
        {
            var people = new People();

            // Expensive op:
            BasicPersonRole[] basicPersonRoles =
                SwarmDb.GetDatabaseForReading().GetRolesForOrganizationsGeographies(organization.GetTree().Identities,
                                                                                    geography.GetTree().Identities);

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

            foreach (BasicPersonRole basicRole in basicPersonRoles)
            {
                if (basicRole.Type == RoleType.LocalActive || basicRole.Type == RoleType.LocalLead ||
                    basicRole.Type == RoleType.LocalDeputy)
                {
                    if (!lookup.ContainsKey(basicRole.PersonId))
                    {
                        people.Add(Person.FromIdentity(basicRole.PersonId));
                        lookup[basicRole.PersonId] = true;
                    }
                }
            }

            people.Sort();
            return(people);
        }