예제 #1
0
        public loginStatus login(string forumname, string username, string password)
        {
            lock (syncLock)
            {
                List <string> strList = new List <string>();
                List <int>    intList = new List <int>();
                strList.Add(forumname);
                strList.Add(username);
                strList.Add(password);
                serverMessage ans = sendMessage("login", strList, intList, DateTime.Now);
                if (ans._messageType.Equals(serverMessage.messageType.success))
                {
                    switch (ans.intContent.ElementAt(0))
                    {
                    case 1:
                        return(loginStatus.FALSE);

                    case 2:
                        return(loginStatus.TRUE);

                    case 3:
                        return(loginStatus.UPDATE_PASSWORD);
                    }
                }
                return(loginStatus.FALSE);
            }
        }
예제 #2
0
 public string addSubForum(string forumName, string subForumName, List <Tuple <string, string, int> > moderators, string requestingUser)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(forumName);
         strList.Add(subForumName);
         strList.Add(requestingUser);
         foreach (Tuple <string, string, int> t in moderators)
         {
             strList.Add(t.Item1);
             strList.Add(t.Item2);
             intList.Add(t.Item3);
         }
         serverMessage ans = sendMessage("addSubForum", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return("true");
         }
         if (ans.stringContent.Count > 0)
         {
             return(ans.stringContent.ElementAt(0));
         }
         return("error, not successful for unknown reason");
     }
 }
예제 #3
0
        public permission getUserPermissionsForForum(string forumName, string username)
        {
            lock (syncLock)
            {
                List <string> strList = new List <string>();
                List <int>    intList = new List <int>();
                strList.Add(forumName);
                strList.Add(username);
                serverMessage ans = sendMessage("getUserPermissionsForForum", strList, intList, DateTime.Now);
                if (ans._messageType.Equals(serverMessage.messageType.success))
                {
                    switch (ans.intContent.ElementAt(0))
                    {
                    case 1:
                        return(permission.INVALID);

                    case 2:
                        return(permission.GUEST);

                    case 3:
                        return(permission.MEMBER);

                    case 5:
                        return(permission.ADMIN);

                    case 6:
                        return(permission.SUPER_ADMIN);
                    }
                }
                return(permission.INVALID);
            }
        }
        public List <Tuple <string, DateTime, int> > getThreads(string forumName, string subForumName, string requestingUser)
        {
            List <string> temp = new List <string>();

            temp.Add(forumName);
            temp.Add(requestingUser);
            serverMessage ans = new serverMessage(3, temp);

            return(sendMessage(ans).Threads);
        }
예제 #5
0
 public List <Tuple <string, string, DateTime, string> > getListOfForumModerators(string forumName, string requestingUser)
 {
     lock (syncLock)
     {
         List <string> temp = new List <string>();
         temp.Add(forumName);
         temp.Add(requestingUser);
         serverMessage ans = new serverMessage(2, temp);
         return(sendMessage(ans).ListOfForumModerators);
     }
 }
        public List <Tuple <string, string, DateTime, int, int, string, DateTime> > getThread(string forumName, string subForumName, int openPostNo, string requestingUser)
        {
            List <string> temp = new List <string>();

            temp.Add(forumName);
            temp.Add(subForumName);
            temp.Add(requestingUser);
            serverMessage ans = new serverMessage(temp, openPostNo);

            return(sendMessage(ans).getThread);
        }
예제 #7
0
 public List <Tuple <string, string, DateTime, int> > getListOfMemberMessages(string forumName, string memberName, string requestingUser)
 {
     lock (syncLock)
     {
         List <string> temp = new List <string>();
         temp.Add(forumName);
         temp.Add(memberName);
         temp.Add(requestingUser);
         serverMessage ans = new serverMessage(1, temp);
         return(sendMessage(ans).ListOfMemberMessages);
     }
 }
        public List <string> getForums()
        {
            List <string> strList = new List <string>();
            List <int>    intList = new List <int>();
            serverMessage ans     = sendMessage("getForums", strList, intList, DateTime.Now);

            if (ans._messageType.Equals(serverMessage.messageType.success))
            {
                return(ans.stringContent);
            }

            return(new List <string>());
        }
예제 #9
0
 public int numOfForums(string requestingUser)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(requestingUser);
         serverMessage ans = sendMessage("numOfForums", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return(ans.intContent.ElementAt(0));
         }
         return(-1);
     }
 }
예제 #10
0
        public List <string> ForumsByUser(string req_user, string target_user)
        {
            lock (syncLock)
            {
                List <string> strList = new List <string>();
                List <int>    intList = new List <int>();
                serverMessage ans     = sendMessage("ForumsByUser", strList, intList, DateTime.Now);
                if (ans._messageType.Equals(serverMessage.messageType.success))
                {
                    return(ans.stringContent);
                }

                return(new List <string>());
            }
        }
예제 #11
0
 public string checkForumPolicy(string forumName, ForumPolicy policy)
 {
     lock (syncLock)
     {
         serverMessage ans = sendMessage(forumName, policy);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return("true");
         }
         if (ans.stringContent.Count > 0)
         {
             return(ans.stringContent.ElementAt(0));
         }
         return("error, not successful for unknown reason");
     }
 }
        public List <string> getSubForums(string forumName, string requestingUser)
        {
            List <string> strList = new List <string>();
            List <int>    intList = new List <int>();

            strList.Add(forumName);
            strList.Add(requestingUser);
            serverMessage ans = sendMessage("getSubForums", strList, intList, DateTime.Now);

            if (ans._messageType.Equals(serverMessage.messageType.success))
            {
                return(ans.stringContent);
            }

            return(new List <string>());
        }
예제 #13
0
 public int getNumOfPostsInSubForum(string forumName, string subForumName, string requestingUser)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(forumName);
         strList.Add(subForumName);
         strList.Add(requestingUser);
         serverMessage ans = sendMessage("getNumOfPostsInSubForum", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return(ans.intContent.ElementAt(0));
         }
         return(-1);
     }
 }
예제 #14
0
        private serverMessage sendMessage(serverMessage message)
        {
            int amount_bytes_read = 0;

            byte[] ba = asen.GetBytes(serializer.Serialize(message));
            try
            {
                outputStream.Write(ba, 0, ba.Length);
            }
            catch (Exception)
            {
                return(new serverMessage("error"));
            }

            while (true)
            {
                try
                {
                    amount_bytes_read = outputStream.Read(input_buffer, 0, input_buffer.Length);
                }
                catch (IOException)
                {
                    return(new serverMessage("error"));
                }

                if (amount_bytes_read != 0)
                {
                    string str = "";
                    for (int i = 0; i < amount_bytes_read; i++)
                    {
                        str = str + Convert.ToChar(input_buffer[i]);
                    }

                    serverMessage temp = serializer.Deserialize <serverMessage>(str);
                    return(temp);
                }
                else
                {
                    Console.WriteLine("no message");
                }
            }
        }
예제 #15
0
 public string addForum(string forumName, string requestingUser)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(forumName);
         strList.Add(requestingUser);
         serverMessage ans = sendMessage("addForum", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return("true");
         }
         if (ans.stringContent.Count > 0)
         {
             return(ans.stringContent.ElementAt(0));
         }
         return("error, not successful for unknown reason");
     }
 }
예제 #16
0
        public string setForumPostDeletionPermissions(string forumName, postDeletionPermission permission, string requestingUser)
        {
            lock (syncLock)
            {
                List <string> strList = new List <string>();
                List <int>    intList = new List <int>();
                strList.Add(forumName);
                strList.Add(requestingUser);
                int toAdd = 0;
                switch (permission)
                {
                case postDeletionPermission.WRITER:
                    toAdd = 2;
                    break;

                case postDeletionPermission.MODERATOR:
                    toAdd = 3;
                    break;

                case postDeletionPermission.ADMIN:
                    toAdd = 4;
                    break;

                case postDeletionPermission.SUPER_ADMIN:
                    toAdd = 5;
                    break;
                }
                intList.Add(toAdd);
                serverMessage ans = sendMessage("setForumPostDeletionPermissions", strList, intList, DateTime.Now);
                if (ans._messageType.Equals(serverMessage.messageType.success))
                {
                    return("true");
                }
                if (ans.stringContent.Count > 0)
                {
                    return(ans.stringContent.ElementAt(0));
                }
                return("error, not successful for unknown reason");
            }
        }
예제 #17
0
 public string registerMemberToForum(string forumName, string username, string password, string eMail)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(forumName);
         strList.Add(username);
         strList.Add(password);
         strList.Add(eMail);
         serverMessage ans = sendMessage("registerMemberToForum", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return("true");
         }
         if (ans.stringContent.Count > 0)
         {
             return(ans.stringContent.ElementAt(0));
         }
         return("error, not successful for unknown reason");
     }
 }
예제 #18
0
 public string sendPM(string forumName, string from, string to, string msg)
 {
     lock (syncLock)
     {
         List <string> strList = new List <string>();
         List <int>    intList = new List <int>();
         strList.Add(forumName);
         strList.Add(from);
         strList.Add(to);
         strList.Add(msg);
         serverMessage ans = sendMessage("sendPM", strList, intList, DateTime.Now);
         if (ans._messageType.Equals(serverMessage.messageType.success))
         {
             return("true");
         }
         if (ans.stringContent.Count > 0)
         {
             return(ans.stringContent.ElementAt(0));
         }
         return("error, not successful for unknown reason");
     }
 }
        public string writePost(string forumName, string subForumName, int parentPostNo, string username, string title, string content)
        {
            List <string> strList = new List <string>();
            List <int>    intList = new List <int>();

            strList.Add(forumName);
            strList.Add(subForumName);
            strList.Add(username);
            strList.Add(title);
            strList.Add(content);
            intList.Add(parentPostNo);
            serverMessage ans = sendMessage("writePost", strList, intList, DateTime.Now);

            if (ans._messageType.Equals(serverMessage.messageType.success))
            {
                return("true");
            }
            if (ans.stringContent.Count > 0)
            {
                return(ans.stringContent.ElementAt(0));
            }
            return("error, not successful for unknown reason");
        }
예제 #20
0
        public serverMessage sendMessage(string s, List <string> inputStrings, List <int> inputInts, DateTime time)
        {
            serverMessage.messageType type = serverMessage.messageType.addForum;

            switch (s)
            {
            case "ForumsByUser":
                type = serverMessage.messageType.ForumsByUser;
                break;

            case "updateLocation":
                type = serverMessage.messageType.updateLocation;
                break;

            case "addForum":
                type = serverMessage.messageType.addForum;
                break;

            case "addSubForum":
                type = serverMessage.messageType.addSubForum;
                break;

            case "registerMemberToForum":
                type = serverMessage.messageType.registerMemberToForum;
                break;

            case "assignAdmin":
                type = serverMessage.messageType.assignAdmin;
                break;

            case "unassignAdmin":
                type = serverMessage.messageType.unassignAdmin;
                break;

            case "assignModerator":
                type = serverMessage.messageType.assignModerator;
                break;

            case "unassignModerator":
                type = serverMessage.messageType.unassignModerator;
                break;

            case "sendPM":
                type = serverMessage.messageType.sendPM;
                break;

            case "setForumMaxAdmins":
                type = serverMessage.messageType.setForumMaxAdmins;
                break;

            case "setForumMinAdmins":
                type = serverMessage.messageType.setForumMinAdmins;
                break;

            case "setForumMaxModerators":
                type = serverMessage.messageType.setForumMaxModerators;
                break;

            case "setForumMinModerators":
                type = serverMessage.messageType.setForumMinModerators;
                break;

            case "setForumPostDeletionPermissions":
                type = serverMessage.messageType.setForumPostDeletionPermissions;
                break;

            case "setForumPasswordLifespan":
                type = serverMessage.messageType.setForumPasswordLifespan;
                break;

            case "setForumModeratorsSeniority":
                type = serverMessage.messageType.setForumModeratorsSeniority;
                break;

            case "setForumModUnassignmentPermissions":
                type = serverMessage.messageType.setForumModUnassignmentPermissions;
                break;

            case "writePost":
                type = serverMessage.messageType.writePost;
                break;

            case "setModeratorTrialTime":
                type = serverMessage.messageType.setModeratorTrialTime;
                break;

            case "deletePost":
                type = serverMessage.messageType.deletePost;
                break;

            case "editPost":
                type = serverMessage.messageType.editPost;
                break;

            case "getNumOfPostsInSubForum":
                type = serverMessage.messageType.getNumOfPostsInSubForum;
                break;

            case "getListOfMemberMessages":
                type = serverMessage.messageType.getListOfMemberMessages;
                break;

            case "numOfForums":
                type = serverMessage.messageType.numOfForums;
                break;

            case "getSubForums":
                type = serverMessage.messageType.getSubForums;
                break;

            case "getThreads":
                type = serverMessage.messageType.getThreads;
                break;

            case "getThread":
                type = serverMessage.messageType.getThread;
                break;

            case "login":
                type = serverMessage.messageType.login;
                break;
            }
            serverMessage message = new serverMessage(type, inputStrings, inputInts, time);

            return(sendMessage(message));
        }
예제 #21
0
        private serverMessage sendMessage(string forumName, ForumPolicy policy)
        {
            serverMessage ans = new serverMessage(serverMessage.messageType.checkForumPolicy, policy, forumName);

            return(sendMessage(ans));
        }