Beispiel #1
0
        static void Main(string[] args)
        {
            MenuManager     menus          = new MenuManager();
            DataBaseManager dBManager      = new DataBaseManager();
            InputManager    inputManager   = new InputManager();
            MessageManager  messageManager = new MessageManager();
            App             app            = new App();

            bool shouldExit = false;

            do
            {
                Enums.MainMenuOptions mainMenuChoice = menus.MainMenu(); //Run the Main Menu

                switch (mainMenuChoice)
                {
                case Enums.MainMenuOptions.Login:
                    string usernameLogin;
                    menus.LoginMenu();                            // Includes console clear and welcome message-to check that
                    usernameLogin = inputManager.InputUserName(); // Returns a string or null if ESC is pressed

                    if (usernameLogin == null)
                    {
                        // Break to main menu if username is null after ESC is pressed
                        break;
                    }

                    // checks if username exists in database
                    if (!app.ValidateUsername(usernameLogin))
                    {
                        break;
                    }

                    // username exists in database, continue to ask for password
                    // check if user is active
                    if (!app.ValidateActiveUser(usernameLogin))
                    {
                        break;
                    }

                    Console.WriteLine($"\nWelcome {usernameLogin}!");

                    bool isPasswordCorrect = app.ValidatePassword(usernameLogin);
                    if (!isPasswordCorrect)
                    {
                        break;
                    }

                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine($"Correct Password.");
                    Console.ResetColor();

                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("\nPress ESC to log out, Ctrl Q to exit or Enter to proceed to User Menu.");
                    Console.ResetColor();

                    Enums.ExitOptions userExitOption = inputManager.InputExitChoice();

                    switch (userExitOption)
                    {
                    case Enums.ExitOptions.Esc:
                        Console.Clear();
                        Console.WriteLine("\nLogging out...");
                        System.Threading.Thread.Sleep(700);
                        break;

                    case Enums.ExitOptions.CtrlQ:
                        Console.Clear();
                        Console.WriteLine("\nClosing application...");
                        shouldExit = true;
                        break;

                    case Enums.ExitOptions.Enter:

                        bool isLogged = true;

                        Enums.UserTypes userType = dBManager.GetUserType(usernameLogin);         //check user type

                        switch (userType)
                        {
                        case Enums.UserTypes.User:
                            do
                            {
                                Enums.UserMenuOptions userMenuOption = menus.UserMenu(usernameLogin);
                                switch (userMenuOption)
                                {
                                case Enums.UserMenuOptions.CreateNewMessage:
                                    app.CreateUserMessage(usernameLogin, ConsoleColor.Cyan);
                                    break;

                                case Enums.UserMenuOptions.Inbox:
                                    messageManager.ShowInbox(usernameLogin);
                                    break;

                                case Enums.UserMenuOptions.SentMessages:
                                    messageManager.ShowSentMessages(usernameLogin);
                                    break;

                                case Enums.UserMenuOptions.Info:
                                    dBManager.GetUserInfo(usernameLogin);
                                    Console.ForegroundColor = ConsoleColor.Cyan;
                                    Console.WriteLine("\nPress any key to go back");
                                    Console.ResetColor();
                                    Console.ReadKey();
                                    break;

                                case Enums.UserMenuOptions.ExitToMain:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nLogging out...");
                                    System.Threading.Thread.Sleep(700);
                                    break;

                                case Enums.UserMenuOptions.Quit:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nClosing application...");
                                    Environment.Exit(0);
                                    break;
                                }
                            } while (isLogged);
                            break;

                        case Enums.UserTypes.JuniorAdmin:
                            do
                            {
                                Enums.JuniorAdminMenuOptions juniorAdminMenuOption = menus.JuniorAdminMenu(usernameLogin);

                                switch (juniorAdminMenuOption)
                                {
                                case Enums.JuniorAdminMenuOptions.CreateNewMessage:

                                    app.CreateUserMessage(usernameLogin, ConsoleColor.Cyan);
                                    break;

                                case Enums.JuniorAdminMenuOptions.Inbox:

                                    messageManager.ShowInbox(usernameLogin);
                                    break;

                                case Enums.JuniorAdminMenuOptions.SentMessages:

                                    messageManager.ShowSentMessages(usernameLogin);
                                    break;

                                case Enums.JuniorAdminMenuOptions.Info:

                                    dBManager.GetUserInfo(usernameLogin);
                                    Console.ForegroundColor = ConsoleColor.Cyan;
                                    Console.WriteLine("\nPress any key to go back");
                                    Console.ResetColor();
                                    Console.ReadKey();
                                    break;

                                case Enums.JuniorAdminMenuOptions.ViewUserInfo:

                                    dBManager.ViewUserInfo();
                                    break;

                                case Enums.JuniorAdminMenuOptions.ViewUserMessages:

                                    messageManager.ViewUserMessages();
                                    break;

                                case Enums.JuniorAdminMenuOptions.ViewAllMessages:

                                    messageManager.ViewAllMessages();
                                    break;

                                case Enums.JuniorAdminMenuOptions.EditMessages:

                                    messageManager.EditMessage();
                                    break;

                                case Enums.JuniorAdminMenuOptions.ExitToMain:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nGoodbye Junior...");
                                    System.Threading.Thread.Sleep(700);
                                    break;

                                case Enums.JuniorAdminMenuOptions.Quit:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nClosing application...");
                                    Environment.Exit(0);
                                    break;
                                }
                            } while (isLogged);
                            break;

                        case Enums.UserTypes.MasterAdmin:
                            do
                            {
                                Enums.MasterAdminMenuOptions masterAdminMenuOption = menus.MasterAdminMenu(usernameLogin);

                                switch (masterAdminMenuOption)
                                {
                                case Enums.MasterAdminMenuOptions.CreateNewMessage:

                                    app.CreateUserMessage(usernameLogin, ConsoleColor.Blue);
                                    break;

                                case Enums.MasterAdminMenuOptions.Inbox:

                                    messageManager.ShowInbox(usernameLogin);
                                    break;

                                case Enums.MasterAdminMenuOptions.SentMessages:

                                    messageManager.ShowSentMessages(usernameLogin);
                                    break;

                                case Enums.MasterAdminMenuOptions.Info:

                                    dBManager.GetUserInfo(usernameLogin);
                                    Console.ForegroundColor = ConsoleColor.Cyan;
                                    Console.WriteLine("\nPress any key to go back");
                                    Console.ResetColor();
                                    Console.ReadKey();
                                    break;

                                case Enums.MasterAdminMenuOptions.ViewUserInfo:

                                    dBManager.ViewUserInfo();
                                    break;

                                case Enums.MasterAdminMenuOptions.ViewUserMessages:

                                    messageManager.ViewUserMessages();
                                    break;

                                case Enums.MasterAdminMenuOptions.ViewAllMessages:

                                    messageManager.ViewAllMessages();
                                    break;

                                case Enums.MasterAdminMenuOptions.EditMessages:

                                    messageManager.EditMessage();
                                    break;

                                case Enums.MasterAdminMenuOptions.DeleteMessages:

                                    messageManager.DeleteMessage();
                                    break;

                                case Enums.MasterAdminMenuOptions.ExitToMain:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nGoodbye Admin...");
                                    System.Threading.Thread.Sleep(700);
                                    break;

                                case Enums.MasterAdminMenuOptions.Quit:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nClosing application...");
                                    Environment.Exit(0);
                                    break;
                                }
                            } while (isLogged);

                            break;

                        case Enums.UserTypes.SuperAdmin:
                            do
                            {
                                Enums.SuperAdminMenuOptions superAdminMenuOption = menus.SuperAdminMenu(usernameLogin);

                                switch (superAdminMenuOption)
                                {
                                case Enums.SuperAdminMenuOptions.CreateNewMessage:

                                    app.CreateUserMessage(usernameLogin, ConsoleColor.Cyan);
                                    break;

                                case Enums.SuperAdminMenuOptions.Inbox:

                                    messageManager.ShowInbox(usernameLogin);
                                    break;

                                case Enums.SuperAdminMenuOptions.SentMessages:

                                    messageManager.ShowSentMessages(usernameLogin);
                                    break;

                                case Enums.SuperAdminMenuOptions.Info:

                                    dBManager.GetUserInfo(usernameLogin);
                                    Console.ForegroundColor = ConsoleColor.Blue;
                                    Console.WriteLine("\nPress any key to go back");
                                    Console.ResetColor();
                                    Console.ReadKey();
                                    break;

                                //==========================================================================================================================================//
                                case Enums.SuperAdminMenuOptions.CreateNewUser:

                                    dBManager.CreateNewUser();
                                    break;

                                case Enums.SuperAdminMenuOptions.DeleteUser:

                                    dBManager.DeleteUser();
                                    break;

                                case Enums.SuperAdminMenuOptions.ActivateUser:

                                    dBManager.ActivateUser();
                                    break;

                                case Enums.SuperAdminMenuOptions.EditUserType:

                                    dBManager.EditUserType();
                                    break;

                                case Enums.SuperAdminMenuOptions.ViewUserInfo:

                                    dBManager.ViewUserInfo();
                                    break;

                                case Enums.SuperAdminMenuOptions.ViewUserMessages:

                                    messageManager.ViewUserMessages();
                                    break;

                                case Enums.SuperAdminMenuOptions.ViewAllMessages:

                                    messageManager.ViewAllMessages();
                                    break;

                                case Enums.SuperAdminMenuOptions.DeleteMessages:

                                    messageManager.DeleteMessage();
                                    break;

                                case Enums.SuperAdminMenuOptions.EditMessages:

                                    messageManager.EditMessage();
                                    break;

                                case Enums.SuperAdminMenuOptions.ExitToMain:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nGoodbye Master...");
                                    System.Threading.Thread.Sleep(700);
                                    break;

                                case Enums.SuperAdminMenuOptions.Quit:
                                    Console.Clear();
                                    isLogged = false;
                                    Console.WriteLine("\nClosing application...");
                                    Environment.Exit(0);
                                    break;
                                }
                            } while (isLogged);

                            break;
                        }
                        break;
                    }
                    break;

                case Enums.MainMenuOptions.SignUp:
                    app.SignUpUser();
                    break;

                case Enums.MainMenuOptions.Info:
                    dBManager.GetInfo();
                    break;

                case Enums.MainMenuOptions.Exit:
                    Console.Clear();
                    Console.WriteLine("\nClosing application...");
                    shouldExit = true;
                    break;
                }
            } while (!shouldExit);
        }