// Type the message public void TypeMessage() { int receiverId = SelectUser(); if (receiverId < 0) { return; } User Receiver = new User(); using (var db = new myContext()) { Receiver = db.Users.Find(receiverId); } Console.Clear(); Various.Header($"{ UserRepository.currentUser.Username} : Send Message to {Receiver.Username}"); string title; string body; // Title Various.SystemMessageDirections("Title must be max 15 characters long"); Console.Write("Type the title of the message: "); title = Various.TypeLetterByLetterWithoutMaskingSTR(15); // Checks if Esc is pressed if (title == "") { Console.WriteLine(); Various.SystemMessage("Send Message Failed"); System.Threading.Thread.Sleep(1500); return; } // Body Console.WriteLine(); Console.WriteLine(); Various.SystemMessageDirections("Body must be max 250 characters long"); Console.Write("Type the body of the message: "); body = Various.TypeLetterByLetterWithoutMaskingSTR(249); // Checks if Esc is pressed if (body == "") { Console.WriteLine(); Various.SystemMessage("Send Message Failed"); System.Threading.Thread.Sleep(1500); return; } MessageRepository.SendMessage(title, body, receiverId); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "sent message"); Console.WriteLine(); Various.SystemMessageSuccess("Message Sent Successful"); System.Threading.Thread.Sleep(1500); return; }
public void EditMessageBetweenTwoUsers(string operation) { TierMenu.PickTwoUsers(operation, out int senderId, out int receiverId); List<Message> messages = MessageRepository.GetMessageBetweenTwoUsers(senderId, receiverId); if (senderId < 0 || receiverId < 0) { Console.WriteLine(); Various.SystemMessage("Edit Message Between Two Users Failed"); System.Threading.Thread.Sleep(1500); return; } int choice = TierMenu.PickAMessageBetweenTwoUsers(messages); if (choice < 0) { Console.WriteLine(); Various.SystemMessage("Edit Message Failed"); System.Threading.Thread.Sleep(1500); return; } string edit = TierMenu.TitleOrBodyEdit(choice, out int choiceToEdit); if (choiceToEdit < 0) { Console.WriteLine(); Various.SystemMessage("Edit Message Failed"); System.Threading.Thread.Sleep(1500); return; } else if (choiceToEdit == 0) { MessageRepository.EditMessageTitle(choice, edit); } else if (choiceToEdit == 1) { MessageRepository.EditMessageBody(choice, edit); } LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "edited message between two users"); Console.WriteLine(); Various.SystemMessageSuccess("Edit Message successfull"); System.Threading.Thread.Sleep(1500); return; }
public void DeleteUser() { int userId = SuperAdminMenu.DeleteUserPick(); if (userId == -1) { Console.WriteLine(); Various.SystemMessage("Delete User failed"); System.Threading.Thread.Sleep(1500); return; } MessageRepository.ChangeIdOfUserToDelete(userId); UserRepository.DeleteUser(userId); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", $"deleted user"); Console.WriteLine(); Various.SystemMessageSuccess($"User[{userId}] deleted."); System.Threading.Thread.Sleep(1500); }
public void DeleteAMessageBetweenTwoUsers(List <Message> messages) { if (messages.Count == 0) { Console.WriteLine(); Various.SystemMessage("There are no messages"); System.Threading.Thread.Sleep(2000); return; } Console.Clear(); MenuDesigner MessageMenu = new MenuDesigner(messages, $"{UserRepository.currentUser.Username} : Delete Message"); int messageViewChoice = MessageMenu.MenuDesignMessage(out int correctMessageId); if (correctMessageId < 0) { Various.SystemMessage("Delete Message Failed"); System.Threading.Thread.Sleep(2000); return; } Console.Clear(); Various.Header($"{UserRepository.currentUser.Username} : Delete Message"); Console.WriteLine(MessageRepository.ViewMessageWithoutChangingRead(correctMessageId)); Console.WriteLine(); Console.Write("Are you sure? (Y / N): "); string yesOrno = Various.TypeLetterByLetterWithoutMaskingYesOrNoSTR(); if (yesOrno == "y" || yesOrno == "Y") { MessageRepository.DeleteMessage(correctMessageId); Console.WriteLine(); Various.SystemMessageSuccess("Message Deleted"); System.Threading.Thread.Sleep(1500); } else { Console.WriteLine(); Various.SystemMessage("Delete Message failed"); System.Threading.Thread.Sleep(1500); } }
static void Main(string[] args) { Console.CursorVisible = false; Menus Menu = new Menus(); UserRepository UserRepository = UserRepository.Instance; LogRepository LogRepository = new LogRepository(); LogRepository.TypeInLog("Application", "started"); do { try { do { MainMenuOptions mainMenuChoice = Menu.MainMenu(); switch (mainMenuChoice) { case MainMenuOptions.Login: #region Login Console.Clear(); Various.Header("Login"); bool usernameExists; bool correctPasswordLength; bool usernameMatchesPassword; int tries = 0; string loginUsername; string loginPassword; // Username Check do { loginUsername = Menu.UsernameMenu(); usernameExists = UserRepository.UsernameExists(loginUsername); tries++; if (usernameExists == false && tries < 3) { Console.WriteLine(); Various.SystemMessage("Username does not exist"); } } while (usernameExists == false && tries < 3); if (tries >= 3 && usernameExists == false) { Console.WriteLine(); Various.SystemMessage("Login failed"); System.Threading.Thread.Sleep(1500); break; } else { Console.Write(" "); Various.SystemMessageSuccess("OK"); } // Password Check tries = 0; do { loginPassword = Menu.PasswordMenu(); usernameMatchesPassword = UserRepository.UsernameAndPasswordMatch(loginUsername, loginPassword); correctPasswordLength = UserRepository.CorrectPasswordLength(loginPassword); tries++; if (correctPasswordLength == false && tries < 3) { Console.WriteLine(); Various.SystemMessage("Password must be between 5 and 12 characters"); } if (usernameMatchesPassword == false && correctPasswordLength == true && tries < 3) { Console.WriteLine(); Various.SystemMessage("Wrong password"); } } while (correctPasswordLength == false && usernameMatchesPassword == false && tries < 3 || correctPasswordLength == true && usernameMatchesPassword == false && tries < 3); if (tries >= 3 && correctPasswordLength == false || tries >= 3 && usernameMatchesPassword == false) { Console.WriteLine(); Various.SystemMessage("Login failed"); System.Threading.Thread.Sleep(1500); break; } else { Console.Write(" "); Various.SystemMessageSuccess("OK"); UserRepository.AssignCurrentUser(loginUsername, loginPassword); LogRepository.TypeInLog(UserRepository.currentUser.Username, "logged in"); Various.SystemMessageSuccess("Logged in successfully"); System.Threading.Thread.Sleep(1500); } // Role Choose switch (UserRepository.currentUser.Role) { case Role.SuperAdmin: #region SuperAdmin SuperAdminLoggedIn sa = new SuperAdminLoggedIn(); bool superAdminExit = false; do { SuperAdminOptions superAdminOption = Menu.SuperAdminMenu(); switch (superAdminOption) { case SuperAdminOptions.CreateUser: sa.AdminCreateUser(); break; case SuperAdminOptions.DeleteUser: sa.DeleteUser(); break; case SuperAdminOptions.UpdateUser: sa.UpdateUser(); break; case SuperAdminOptions.ViewUsers: Console.Clear(); Various.Header($"{ UserRepository.currentUser.Username} : View Users"); sa.ViewUserExtended(); Console.ReadKey(); break; case SuperAdminOptions.SendMessage: Menu.TypeMessage(); break; case SuperAdminOptions.ViewMessages: Menu.ViewMessages(); break; case SuperAdminOptions.Exit: superAdminExit = true; break; default: break; } } while (!superAdminExit); #endregion break; case Role.Tier3User: #region Tier3User Tier123UserLoggedIn Tier3User = new Tier123UserLoggedIn(); bool tier3UserExit = false; do { Tier3UserOptions Tier3option = Menu.Tier3UserMenu(); switch (Tier3option) { case Tier3UserOptions.EditMessage: Tier3User.EditMessageBetweenTwoUsers("Edit Message Between Two Users"); break; case Tier3UserOptions.DeleteMessage: Tier3User.DeleteMessageBetweenTwoUsers("Delete Message Between Two Users"); break; case Tier3UserOptions.ViewMessage: Tier3User.ChooseMessageBetweenTwoUsers("View Message Between Two Users"); break; case Tier3UserOptions.SendMessage: Menu.TypeMessage(); break; case Tier3UserOptions.ViewMessages: Menu.ViewMessages(); break; case Tier3UserOptions.Exit: tier3UserExit = true; break; default: break; } } while (!tier3UserExit); #endregion break; case Role.Tier2User: #region Tier2User Tier123UserLoggedIn Tier2User = new Tier123UserLoggedIn(); bool Tier2UserExit = false; do { Tier2UserOptions Tier2Option = Menu.Tier2UserMenu(); switch (Tier2Option) { case Tier2UserOptions.EditMessage: Tier2User.EditMessageBetweenTwoUsers("Edit Message Between Two Users"); break; case Tier2UserOptions.ViewMessage: Tier2User.ChooseMessageBetweenTwoUsers("View Message Between Two Users"); break; case Tier2UserOptions.SendeMessage: Menu.TypeMessage(); break; case Tier2UserOptions.ViewMessages: Menu.ViewMessages(); break; case Tier2UserOptions.Exit: Tier2UserExit = true; break; default: break; } } while (!Tier2UserExit); #endregion break; case Role.Tier1User: #region Tier1User Tier123UserLoggedIn Tier1User = new Tier123UserLoggedIn(); bool Tier1UserExit = false; do { Tier1UserOptions Tier1Option = Menu.Tier1UserMenu(); switch (Tier1Option) { case Tier1UserOptions.ViewMessage: Tier1User.ChooseMessageBetweenTwoUsers("View Message Between Two Users"); break; case Tier1UserOptions.SendMessage: Menu.TypeMessage(); break; case Tier1UserOptions.ViewMessages: Menu.ViewMessages(); break; case Tier1UserOptions.Exit: Tier1UserExit = true; break; default: break; } } while (!Tier1UserExit); #endregion break; case Role.Tier0User: #region Tier0User Tier123UserLoggedIn Tier0User = new Tier123UserLoggedIn(); bool Tier0UserExit = false; do { Tier0UserOptions Tier0Option = Menu.Tier0UserMenu(); switch (Tier0Option) { case Tier0UserOptions.SendMessage: Menu.TypeMessage(); break; case Tier0UserOptions.ViewMessages: Menu.ViewMessages(); break; case Tier0UserOptions.Exit: Tier0UserExit = true; break; default: break; } } while (!Tier0UserExit); #endregion break; default: break; } LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "logged out"); UserRepository.NullCurrentUser(); #endregion break; case MainMenuOptions.Register: #region Register Console.Clear(); Various.Header("Register"); //bool usernameExists; tries = 0; string registerUsername; string registerPassword; // Username Check do { registerUsername = Menu.UsernameMenu(); usernameExists = UserRepository.UsernameExists(registerUsername); tries++; if (usernameExists == true && tries < 3) { Console.WriteLine(); Various.SystemMessage("Username already exists"); } } while (usernameExists == true && tries < 3); if (tries >= 3 && usernameExists == true) { Console.WriteLine(); Various.SystemMessage("Registration failed"); System.Threading.Thread.Sleep(2000); break; } else { Console.Write(" "); Various.SystemMessageSuccess("OK"); } // Password Check tries = 0; do { registerPassword = Menu.PasswordMenu(); correctPasswordLength = UserRepository.CorrectPasswordLength(registerPassword); tries++; if (correctPasswordLength == false && tries < 3) { Console.WriteLine(); Various.SystemMessage("Password must be between 5 and 12 characters"); } } while (correctPasswordLength == false && tries < 3); if (tries >= 3 && correctPasswordLength == false) { Console.WriteLine(); Various.SystemMessage("Registration failed"); System.Threading.Thread.Sleep(2000); break; } else { Console.Write(" "); Various.SystemMessageSuccess("OK"); UserRepository.CreateUserSimple(registerUsername, registerPassword); LogRepository.TypeInLog($"{registerUsername}", "registered"); Various.SystemMessageSuccess("Registration successfull"); System.Threading.Thread.Sleep(2000); } UserRepository.NullCurrentUser(); #endregion break; case MainMenuOptions.Exit: #region Exit Console.Clear(); Various.SystemMessage("GoodBye"); System.Threading.Thread.Sleep(1500); LogRepository.TypeInLog("Application", "exited"); Environment.Exit(0); #endregion break; default: break; } } while (true); } catch (Exception e) { UserRepository.NullCurrentUser(); LogRepository.TypeInLog($"Error: {e.Message}", "occured"); Various.SystemMessageError("An error has occured. We are sorry"); } } while (true); }
public void AdminCreateUser() { Console.Clear(); Various.Header($"{UserRepository.currentUser.Username} : Create User"); RoleOptions roleOption; Role role = Role.Tier0User; // Username string username = Various.UpdateUsername(); if (username == "") { Console.WriteLine(); Various.SystemMessage("Create User failed"); System.Threading.Thread.Sleep(1500); return; } // Password string password = Various.UpdatePassword(); if (password == "") { Console.WriteLine(); Various.SystemMessage("Create User failed"); System.Threading.Thread.Sleep(1500); return; } // Role Assignment roleOption = SuperAdminMenu.RoleMenu("Create User"); switch (roleOption) { case RoleOptions.Tier3User: role = Role.Tier3User; break; case RoleOptions.Tier2User: role = Role.Tier2User; break; case RoleOptions.Tier1User: role = Role.Tier1User; break; case RoleOptions.Tier0User: role = Role.Tier0User; break; case RoleOptions.Exit: Console.WriteLine(); Various.SystemMessage("Create User failed"); System.Threading.Thread.Sleep(1500); return; default: return; } UserRepository.CreateUserExtended(username, password, role); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "created user"); Various.SystemMessageSuccess("Create User successfull"); System.Threading.Thread.Sleep(1500); }
public void UpdateUser() { int userId = SuperAdminMenu.UpdateUserPick(); if (userId == -1) { Console.WriteLine(); Various.SystemMessage("Update User failed"); System.Threading.Thread.Sleep(1500); return; } UpdateOptions updateChoice = SuperAdminMenu.UpdateMenu(); switch (updateChoice) { case UpdateOptions.Username: string username = Various.UpdateUsername(); if (username == "") { Console.WriteLine(); Various.SystemMessage("Update Username failed"); System.Threading.Thread.Sleep(1500); return; } UserRepository.UpdateUserUsername(userId, username); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "updated username of user"); Various.SystemMessageSuccess("Username updated successfully"); System.Threading.Thread.Sleep(1500); break; case UpdateOptions.Password: string password = Various.UpdatePassword(); if (password == "") { Console.WriteLine(); Various.SystemMessage("Update Password failed"); System.Threading.Thread.Sleep(1500); return; } UserRepository.UpdateUserPassword(userId, password); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "updated password of user"); Various.SystemMessageSuccess("Password updated successfully"); System.Threading.Thread.Sleep(1500); break; case UpdateOptions.Role: RoleOptions updatedRoleChoice = SuperAdminMenu.RoleMenu("Update User"); Role role = Role.Tier0User; switch (updatedRoleChoice) { case RoleOptions.Tier3User: role = Role.Tier3User; break; case RoleOptions.Tier2User: role = Role.Tier2User; break; case RoleOptions.Tier1User: role = Role.Tier1User; break; case RoleOptions.Tier0User: role = Role.Tier0User; break; case RoleOptions.Exit: Various.SystemMessage("Update User failed"); System.Threading.Thread.Sleep(1500); return; default: Various.SystemMessage("Update User failed"); System.Threading.Thread.Sleep(1500); return; } UserRepository.UpdateUserRole(userId, role); LogRepository.TypeInLog($"{UserRepository.currentUser.Username}", "updated role of user"); Various.SystemMessageSuccess("Role updated successfully"); System.Threading.Thread.Sleep(1500); break; case UpdateOptions.Exit: return; default: return; } }