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")); }