Example #1
0
        public UserInfo[] getMembers(string UserType)
        {
            List <UserInfo> results = new List <UserInfo>();

            if (UserType == "Teacher")
            {
                results.Add(ADUtils.FindUserInfos(Teacher)[0]);
            }
            UserNodes.Reverse();
            foreach (UserNode n in UserNodes)
            {
                if (n.Method == "Add")
                {
                    switch (n.Type)
                    {
                    case "User":
                        results.Add(ADUtils.FindUserInfos(n.Value)[0]);
                        break;

                    case "Role":
                        foreach (string s in ADUtils.GetUsersInRole(ADUtils.DirectoryRoot, hapConfig.Current.AD.UPN, n.Value, true))
                        {
                            results.Add(ADUtils.FindUserInfos(s)[0]);
                        }
                        break;

                    case "OU":
                        results.AddRange(ADUtils.FindUsersIn(n.Value));
                        break;
                    }
                }
                else
                {
                    switch (n.Type)
                    {
                    case "User":
                        results.RemoveAll(ui => ui.UserName.ToLower() == n.Value.ToLower());
                        break;

                    case "Role":
                        foreach (string s in ADUtils.GetUsersInRole(ADUtils.DirectoryRoot, hapConfig.Current.AD.UPN, n.Value, true))
                        {
                            results.RemoveAll(ui => ui.UserName.ToLower() == s.ToLower());
                        }
                        break;

                    case "OU":
                        foreach (UserInfo i in ADUtils.FindUsersIn(n.Value))
                        {
                            results.RemoveAll(ui => ui.UserName.ToLower() == i.UserName.ToLower());
                        }
                        break;
                    }
                }
            }
            UserNodes.Reverse();
            return(results.ToArray());
        }