Beispiel #1
0
        public static void CatalogueManagementMenu(Users.User usr, out ExtendedResult result)
        {
            List <MenuOption> menu = new List <MenuOption>();

            menu.Add(new MenuOption("B", "Add new book", AddBookHandler));
            menu.Add(new MenuOption("P", "Add new periodical", AddPeriodicalHandler));
            menu.Add(new MenuOption("X", "Exit", LogoutHandler));

            result = new ExtendedResult(ResultCode.SubMenu, menu);
        }
Beispiel #2
0
        public static void UserManagementMenu(Users.User usr, out ExtendedResult result)
        {
            List <MenuOption> menu = new List <MenuOption>();

            menu.Add(new MenuOption("A", "Add new user", AddUserHandler));
            menu.Add(new MenuOption("F", "Find a user", FindUserHandler));
            menu.Add(new MenuOption("R", "Remove a user", RemoveUserHandler));
            menu.Add(new MenuOption("X", "Exit", LogoutHandler));

            result = new ExtendedResult(ResultCode.SubMenu, menu);
        }
Beispiel #3
0
        private static void RemoveUserHandler(Users.User usr, out ExtendedResult result)
        {
            Console.Write("Enter login name: ");
            string login = Console.ReadLine();

            if (login == usr.Login)
            {
                throw new Project_2.Exceptions.DeleteCurrentUserException();
            }

            Project_2.Users.UserManager.Delete(login);
            result = new ExtendedResult(ResultCode.None);
        }
Beispiel #4
0
        private static void AddUserHandler(Users.User usr, out ExtendedResult result)
        {
            Console.WriteLine("Please select from the following types of user: "******"\t1) Administrator");
            Console.WriteLine("\t2) Staff Member");
            Console.WriteLine("\t3) Student");
            Console.WriteLine("\t0) Go back");
            Console.Write("Selection: ");

            Users.User newUsr = null;
            int        selection;

            if (int.TryParse(Console.ReadLine(), out selection) == true)
            {
                switch (selection)
                {
                case 1:     // Administrator
                    newUsr = Project_2.Subsystems.AutoPrompt.Create <Project_2.Users.Admin>();
                    break;

                case 2:     // Staff Member
                    newUsr = Project_2.Subsystems.AutoPrompt.Create <Project_2.Users.Staff>();
                    break;

                case 3:     // Student
                    newUsr = Project_2.Subsystems.AutoPrompt.Create <Project_2.Users.Student>();
                    break;

                case 0:     // Go back
                    // Do nothing
                    break;

                default:
                    Console.Error.WriteLine("Error: Invalid user type");
                    break;
                }
            }
            if (newUsr != null)
            {
                Project_2.Users.UserManager.Add(newUsr);
                result = new ExtendedResult(ResultCode.None);
            }
            else
            {
                result = new ExtendedResult(ResultCode.Failure);
            }
        }
Beispiel #5
0
        private static void FindUserHandler(Users.User usr, out ExtendedResult result)
        {
            Console.Write("Enter login name: ");
            string login = Console.ReadLine();

            Users.User searchUser;
            if ((searchUser = Project_2.Users.UserManager.Find(login)) == null)
            {
                Console.Error.WriteLine("Error: User not found");
                result = new ExtendedResult(ResultCode.Failure);
            }
            else
            {
                Console.WriteLine(searchUser.GetDetail());
                Console.WriteLine();
                result = new ExtendedResult(ResultCode.None);
            }
        }
Beispiel #6
0
        private static void FindByTitleHandler(Users.User usr, out ExtendedResult result)
        {
            Console.Write("Please enter a title to search for: ");
            string title = Console.ReadLine();

            Console.WriteLine();
            Project_2.Catalogue.Item[] items = Project_2.Catalogue.CatalogueManager.FindByTitle(title);
            if (items.Length == 0)
            {
                Console.WriteLine("No titles found.");
            }
            else
            {
                Console.WriteLine("Matching titles: ");
                foreach (Project_2.Catalogue.Item item in items)
                {
                    Console.WriteLine(string.Format("{0}", item));
                }
            }
            Console.WriteLine();
            result = new ExtendedResult(ResultCode.None);
        }
Beispiel #7
0
        public static void RunMenu(Users.User currentUser, List <MenuOption> menu)
        {
            MenuOption     opt;
            ExtendedResult extResult = new ExtendedResult(ResultCode.None);

            do
            {
                try
                {
                    opt = GetMenuSelection(menu, currentUser);
                    opt.Handler(currentUser, out extResult);
                    if (extResult.ResultCode == ResultCode.SubMenu)
                    {
                        RunMenu(currentUser, extResult.SubMenu);
                    }
                }
                catch (Project_2.Exceptions.EasyLibraryException ex)
                {
                    Console.Error.WriteLine("Error: {0}", ex.Message);
                }
            } while (extResult.ResultCode != ResultCode.Logout);
        }
Beispiel #8
0
 private static void LogoutHandler(Users.User usr, out ExtendedResult result)
 {
     result = new ExtendedResult(ResultCode.Logout);
 }
Beispiel #9
0
 private static void NoopHandler(Users.User usr, out ExtendedResult result)
 {
     result = new ExtendedResult(ResultCode.None);
 }
Beispiel #10
0
 private static void AddPeriodicalHandler(Users.User usr, out ExtendedResult result)
 {
     Project_2.Catalogue.CatalogueManager.Add(Project_2.Subsystems.AutoPrompt.Create <Project_2.Catalogue.Periodical>());
     result = new ExtendedResult(ResultCode.None);
 }