示例#1
0
 public serverMessage(messageType p1, ForumPolicy p2, string forumName)
 {
     // TODO: Complete member initialization
     _messageType  = p1;
     policy        = p2;
     stringContent = new List <string>();
     stringContent.Add(forumName);
     intContent            = null;
     time                  = DateTime.Now;
     policy                = null;
     ListOfMemberMessages  = null;
     ListOfForumModerators = null;
     Threads               = null;
     getThread             = null;
 }
        private void loadDB()
        {
            List <string> forumsNames = _db.ReturnForumsList();

            foreach (string forumName in forumsNames)
            {
                ForumPolicy     forumPolicy    = getForumPolicy(forumName);
                List <string>   subForumsNames = _db.ReturnSubForumList(forumName);
                List <SubForum> subForums      = new List <SubForum>();
                List <User>     forumUsers     = getForumUsers(forumName);
                foreach (string subForumName in subForumsNames)
                {
                    List <Post> threads = managePosts(forumName, subForumName, forumUsers);
                    SubForum    sf      = SubForum.create(forumName, subForumName, threads);
                    subForums.Add(sf);
                    getSubForumModerators(forumName, subForumName, forumUsers);
                }
                Forum f = Forum.create(forumName, forumPolicy, subForums);
                _fm.readForum(f);
            }
        }
        public string checkForumPolicy(string forumName, ForumPolicy policy)
        {
            List <string> input = new List <string>()
            {
                forumName
            };

            if (Constants.isValidInput(input) && policy != null)
            {
                lock (o)
                {
                    int numOfAdmins           = _um.getNumOfAdmins(forumName);
                    int maxNumOfModerators    = _um.getMaxModerators(forumName);
                    int minNumOfModerators    = _um.getMinModerators(forumName);
                    int minModeratorSeniority = _um.getMinModeratorSeniority(forumName);
                    if (numOfAdmins > policy.getMaxAdmins())
                    {
                        return("Forum " + forumName + " has " + numOfAdmins + " admins. Cannot set max num of admins to " + policy.getMaxAdmins());
                    }
                    if (numOfAdmins < policy.getMinAdmins())
                    {
                        return("Forum " + forumName + " has " + numOfAdmins + " admins. Cannot set min num of admins to " + policy.getMinAdmins());
                    }
                    if (maxNumOfModerators > policy.getMaxModerators())
                    {
                        return("One of forum " + forumName + " sub forums has " + maxNumOfModerators + " moderators. Cannot set max num of moderators to " + policy.getMaxModerators());
                    }
                    if (minNumOfModerators < policy.getMinModerators())
                    {
                        return("One of forum " + forumName + " sub forums has " + minNumOfModerators + " moderators. Cannot set min num of moderators to " + policy.getMinModerators());
                    }
                    if (minModeratorSeniority < policy.getSeniority())
                    {
                        return("One of the moderators of forum " + forumName + " has a seniority of " + minModeratorSeniority + " days. Cannot set minimum seniotiry to " + policy.getSeniority());
                    }
                    return(Constants.SUCCESS);
                }
            }
            return(Constants.INVALID_INPUT);
        }
 public void UnitTestForumPolicyCreate()
 {
     Assert.IsTrue(ForumPolicy.create(10, 1, 10, 1, postDeletionPermission.WRITER, 365, 0, modUnassignmentPermission.ADMIN) != null);
 }
 public void SetupTests()
 {
     forumSystem = new ForumSystem(true);
     forumSystem.addForum("TestingForum", "superAdmin");
     forumPolicy = new ForumPolicy();
 }