public static void CloseTicket()
        {
            string currentUsername = _db.RetrieveCurrentUserFromDatabase();

            print.QuasarScreen(currentUsername);
            print.UniversalLoadingOutput("Loading");
            Console.WriteLine("CLOSE EXISTING TECHNICAL TICKETS");

            string viewList      = "View List of Open Tickets";
            string back          = "\r\nBack";
            string closeSpecific = "Close Specific Ticket";
            string optionsMsg    = "Choose one of the following functions\r\n";

            while (true)
            {
                string optionYesOrNo = SelectMenu.MenuColumn(new List <string> {
                    viewList, closeSpecific, back
                }, currentUsername, optionsMsg).option;
                if (optionYesOrNo == viewList)
                {
                    _db.ViewListOfOpenCustomerTickets();
                    CloseCustomerTicketFunction();
                }
                else if (optionYesOrNo == closeSpecific)
                {
                    CloseCustomerTicketFunction();
                }
                else if (optionYesOrNo == back)
                {
                    ManageTroubleTickets.OpenOrCloseTroubleTicket();
                }
            }
        }
        public static void CloseCustomerTicketFunction()
        {
            string currentUsername        = _db.RetrieveCurrentUserFromDatabase();
            int    ticketID               = print.SelectTicketID();
            string previousUserAssignedTo = _db.SelectUserAssignedToTicket(ticketID);

            if (_db.CheckIfTicketIDWithStatusOpenExistsInList(ticketID) == false)
            {
                print.ColoredText($"There is no Customer Ticket with [ID = {ticketID}]\n\n(Press any key to continue)", ConsoleColor.DarkRed);
                Console.ReadKey();
                ManageTroubleTickets.OpenOrCloseTroubleTicket();
            }
            else
            {
                string yes            = "Yes";
                string no             = "No";
                string closeTicket    = $"Are you sure you want to mark ticket {ticketID} as closed?\r\n";
                string optionYesOrNo2 = SelectMenu.MenuRow(new List <string> {
                    yes, no
                }, currentUsername, closeTicket).option;

                if (optionYesOrNo2 == yes)
                {
                    _db.SetTicketStatusToClosed(currentUsername, ticketID);
                    _text.CloseTicketToUserNotification(currentUsername, previousUserAssignedTo, ticketID);
                    ManageTroubleTickets.OpenOrCloseTroubleTicket();
                }
                else if (optionYesOrNo2 == no)
                {
                    ManageTroubleTickets.OpenOrCloseTroubleTicket();
                }
            }
        }
예제 #3
0
        public static void OpenTicket()
        {
            var _db   = new ConnectToServer();
            var print = new OutputControl();

            string currentUsername = _db.RetrieveCurrentUserFromDatabase();
            string comment         = print.TicketComment();
            string userAssignedTo  = AssignTroubleTickets.AssignTicketToUser();

            _db.OpenNewTechnicalTicket(currentUsername, userAssignedTo, comment);
            Console.WriteLine("\n\nPress any key to return");
            Console.ReadKey();
            ManageTroubleTickets.OpenOrCloseTroubleTicket();
        }
        public static void UserFunctionMenuScreen(string currentUsernameRole)
        {
            var    _db          = new ConnectToServer();
            string currentUser  = _db.RetrieveCurrentUserFromDatabase();
            int    countTickets = _db.CountOpenTicketsAssignedToUser(currentUser);

            string notificationsAdmin = $"Check user notifications";
            string notificationsUser  = $"Check user notifications [{countTickets}]";
            string requests           = "Create new username/password from requests";
            string viewUsers          = "Show list of active users";
            string modifyRole         = "Upgrade/Downgrade user's role";
            string deleteUser         = "******";
            string manageTickets      = "Manage Customer Trouble Tickets";
            string viewTickets        = "View Trouble Tickets";
            string editTicket         = "Edit Trouble Tickets";
            string deleteTicket       = "Delete Trouble Tickets";
            string logOut             = "\nLog Out";
            string message            = "\nChoose one of the following functions\n";

            //Active User Functions. Control of actions is maintained by excluding a user from certain methods.
            switch (currentUsernameRole)
            {
                #region Super Admin Functions
            case "super_admin":
                while (true)
                {
                    string SuperAdminFunctionMenu = SelectMenu.MenuColumn(new List <string> {
                        notificationsAdmin, requests, viewUsers, modifyRole, deleteUser, manageTickets, viewTickets, editTicket, deleteTicket, logOut
                    }, currentUser, message).option;

                    if (SuperAdminFunctionMenu == notificationsAdmin)
                    {
                        CheckNotifications.CheckAdminNotifications();
                    }

                    else if (SuperAdminFunctionMenu == requests)
                    {
                        SuperAdminFunctions.CreateNewUserFromRequestFunction();
                    }

                    else if (SuperAdminFunctionMenu == viewUsers)
                    {
                        SuperAdminFunctions.ShowAvailableUsersFunction();
                    }

                    else if (SuperAdminFunctionMenu == modifyRole)
                    {
                        SuperAdminFunctions.AlterUserRoleStatus();
                    }

                    else if (SuperAdminFunctionMenu == deleteUser)
                    {
                        SuperAdminFunctions.DeleteUserFromDatabase();
                    }

                    else if (SuperAdminFunctionMenu == manageTickets)
                    {
                        ManageTroubleTickets.OpenOrCloseTroubleTicket();
                    }

                    else if (SuperAdminFunctionMenu == viewTickets)
                    {
                        ViewExistingTickets.ViewExistingOpenTicketsFunction();
                    }

                    else if (SuperAdminFunctionMenu == editTicket)
                    {
                        EditExistingTroubleTickets.EditOpenTicket();
                    }

                    else if (SuperAdminFunctionMenu == deleteTicket)
                    {
                        DeleteTroubleTickets.DeleteExistingOpenOrClosedTicketFunction();
                    }

                    else if (SuperAdminFunctionMenu == logOut)
                    {
                        _db.LoggingOffQuasar();
                    }
                }
                #endregion

                #region Administrator Functions
            case "Administrator":
                while (true)
                {
                    string AdminFunctionMenu = SelectMenu.MenuColumn(new List <string> {
                        notificationsUser, manageTickets, viewTickets, editTicket, deleteTicket, logOut
                    }, currentUser, message).option;

                    if (AdminFunctionMenu == notificationsUser)
                    {
                        CheckNotifications.CheckUserNotifications();
                    }

                    else if (AdminFunctionMenu == manageTickets)
                    {
                        ManageTroubleTickets.OpenOrCloseTroubleTicket();
                    }

                    else if (AdminFunctionMenu == viewTickets)
                    {
                        ViewExistingTickets.ViewExistingOpenTicketsFunction();
                    }

                    else if (AdminFunctionMenu == editTicket)
                    {
                        EditExistingTroubleTickets.EditOpenTicket();
                    }

                    else if (AdminFunctionMenu == deleteTicket)
                    {
                        DeleteTroubleTickets.DeleteExistingOpenOrClosedTicketFunction();
                    }

                    else if (AdminFunctionMenu == logOut)
                    {
                        _db.LoggingOffQuasar();
                    }
                }
                #endregion

                #region Moderator Functions
            case "Moderator":
                while (true)
                {
                    string ModeratorFunctionMenu = SelectMenu.MenuColumn(new List <string> {
                        notificationsUser, manageTickets, viewTickets, editTicket, logOut
                    }, currentUser, message).option;

                    if (ModeratorFunctionMenu == notificationsUser)
                    {
                        CheckNotifications.CheckUserNotifications();
                    }

                    else if (ModeratorFunctionMenu == manageTickets)
                    {
                        ManageTroubleTickets.OpenOrCloseTroubleTicket();
                    }

                    else if (ModeratorFunctionMenu == viewTickets)
                    {
                        ViewExistingTickets.ViewExistingOpenTicketsFunction();
                    }

                    else if (ModeratorFunctionMenu == editTicket)
                    {
                        EditExistingTroubleTickets.EditOpenTicket();
                    }

                    else if (ModeratorFunctionMenu == logOut)
                    {
                        _db.LoggingOffQuasar();
                    }
                }
                #endregion

                #region User Functions
            case "User":
                while (true)
                {
                    string UserFunctionMenu = SelectMenu.MenuColumn(new List <string> {
                        notificationsUser, manageTickets, viewTickets, logOut
                    }, currentUser, message).option;

                    if (UserFunctionMenu == notificationsUser)
                    {
                        CheckNotifications.CheckUserNotifications();
                    }

                    else if (UserFunctionMenu == manageTickets)
                    {
                        ManageTroubleTickets.OpenOrCloseTroubleTicket();
                    }

                    else if (UserFunctionMenu == viewTickets)
                    {
                        ViewExistingTickets.ViewExistingOpenTicketsFunction();
                    }

                    else if (UserFunctionMenu == logOut)
                    {
                        _db.LoggingOffQuasar();
                    }
                }
                #endregion
            }
        }