public FilterBarViewModel(TicketCenterListSettings listPreferences, UserInfo[] staffUsers, UserInfo[] submitterUsers)
 {
     Preferences = listPreferences;
     StaffUsers = staffUsers;
     SubmitterUsers = submitterUsers;
 }
        internal UserInfo[] GetGroupMembersFromAd(string groupName)
        {
            UserInfo[] usersInGroup = null;
            using
            (
                PrincipalContext ctx = new PrincipalContext(ContextType.Domain,
                                        GetActiveDirectoryDomain(),
                                        GetActiveDirectoryUser(),
                                        GetActiveDirectoryUserPassword())
            )
            {

                using (GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, groupName.ToLowerInvariant()))
                {
                    if (grp != null)
                    {
                        var x = from p in grp.GetMembers(true)
                                where p.StructuralObjectClass == "user" &&
                                      !string.IsNullOrEmpty(p.UserPrincipalName) &&
                                      !string.IsNullOrEmpty(p.DisplayName) &&
                                      p.UserPrincipalName.Trim() != string.Empty &&
                                      p.DisplayName.Trim() != string.Empty
                                orderby p.DisplayName
                                select new UserInfo() { Name = p.SamAccountName.ToLowerInvariant(), DisplayName = p.DisplayName };

                        usersInGroup = x.ToArray();
                    }
                    else
                    {
                        usersInGroup = new UserInfo[0];//zero length array for memory cache, so it doesn't attempt re-fetches
                    }
                }
            }
            return usersInGroup;
        }