static void Main(string[] args) { InitialSetup(); var currentScreen = Screen.StartUp; var userCommand = UserCommand.None; bool isRunning = true; UIPresenter.ShowScreen(currentScreen); while (isRunning) { bool isValid = true; do { if (isValid) { IOService.Print(Resources.enterYourCommand); } else { IOService.Print(Resources.wrongCommand); } string userInput = Console.ReadLine(); isValid = CommandProcessingUnit.GetCommand(userInput, currentScreen, out userCommand); } while (!isValid); currentScreen = CommandProcessingUnit.ProcessCommand(userCommand, currentScreen); UIPresenter.ShowScreen(currentScreen); } Console.ReadKey(); }
/// <summary> /// Process inputed command. /// </summary> /// <param name="userCommand">User command.</param> /// <param name="currentScreen">Current screen.</param> /// <returns>Screen.</returns> public static Screen ProcessCommand(UserCommand userCommand, Screen currentScreen) { Screen screen = currentScreen; switch (userCommand) { case UserCommand.GoToRegister: screen = Screen.Register; UIPresenter.ShowScreen(screen); if (RegisterProcess()) { screen = Screen.UserProfile; UIPresenter.ShowScreen(screen); } else { screen = Screen.StartUp; UIPresenter.ShowScreen(screen); } break; case UserCommand.GoToLogin: screen = Screen.Login; UIPresenter.ShowScreen(screen); if (LogInProcess()) { screen = Screen.UserProfile; } else { screen = Screen.StartUp; } break; case UserCommand.AddToDo: screen = Screen.AddToDoScreen; UIPresenter.ShowScreen(screen); if (AddToList()) { screen = Screen.UserProfile; } else { screen = Screen.UserProfile; } break; case UserCommand.RemoveToDo: RemoveToDo(); screen = Screen.UserProfile; break; case UserCommand.CompleteToDo: CompleteToDo(); screen = Screen.UserProfile; break; case UserCommand.HistoryToDo: screen = Screen.HistoryScreen; UIPresenter.ShowScreen(screen); History(); screen = Screen.UserProfile; break; case UserCommand.None: break; } return(screen); }