Ejemplo n.º 1
0
        public RedirectToActionResult GenerateMessage(string messageTitle, string topic, string userName, string messageContent)
        {
            User        newUser;
            Message     newMessage;
            List <User> listOfUsers = userRepo.ListOfUsers == null ? null : userRepo.ListOfUsers;
            bool        userExists  = false;

            if (listOfUsers != null)
            {
                foreach (User u in listOfUsers)
                {
                    //checking database to user if the username already exists
                    if (u.Username == userName)
                    {
                        userExists = true;  //this means that the user has been found in the "database"
                    }
                }
            }
            //sets topic to the appropriate input string for the model

            if (userExists != true)
            {
                //assumes that user does not exist in "database"
                //build a user
                //add user to user list
                //build a message
                //add to messaging history of the user
                //add message to messsage board
                newUser = new User()
                {
                    Username = userName
                };
                newMessage = new Message()
                {
                    MessageContent    = messageContent,
                    Topic             = topic,
                    UserNameSignature = userName,
                    MessageTitle      = messageTitle
                };
                newUser.AddMessageToHistory(newMessage);

                userRepo.AddNewUser(newUser);
                messageRepo.addMessageToBoard(topic, newMessage);
            }
            else
            {
                //assumes that the user already exists in the database
                //build message
                //add to message history of the user

                /*
                 *  this is done by passing the desired username into the FindUser method in the userlist static class
                 *  the method will return either -1, meaning the user was not found, or the index of the element the user exists in
                 * `*/
                //add message to message board
                newMessage = new Message()
                {
                    MessageContent    = messageContent,
                    MessageTitle      = messageTitle,
                    UserNameSignature = userName,
                    Topic             = topic
                };
                userRepo.ModifyUserMessageHistory(userName, "add", newMessage);
                messageRepo.addMessageToBoard(topic, newMessage);
            }
            //set the genre the user selected for retrieval later
            TempData["chatRoom"] = topic;
            if (topic == "general")
            {
                TempData["pageTitleText"] = "General Messageboard";
            }
            else
            {
                TempData["pageTitleText"] = "Star Wars Messageboard";
            }
            return(RedirectToAction("Forum"));
        }