public static void ShowBooks() { Menu <Book> takedBooksMenu = new Menu <Book>(takedBooks) { Info = "Мои книги:", ItemInstruction = (item) => { return(item.Author + ", \"" + item.Name + "\" (" + item.Year + ")"); }, Empty = "Вы не брали книг" }; takedBooksMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { takedBooksMenu.DeleteSelectedItem(); if (takedBooks.Count != 0) { Library.MakeBookAvailable(takedBooks[takedBooksMenu.SelectedItem]); } } }; takedBooksMenu.Help += String.Join("\n", "Enter - вернуть книгу", "Backspace - назад"); takedBooksMenu.Use(); }
static void EditBook(Book book) { List <string> editBookMenuItems = new List <string>() { "Изменить автора", "Изменить название", "Изменить год", }; Menu <string> editBookMenu = new Menu <string>(editBookMenuItems) { Info = "Редактировать книгу: \n\n " + book.Author + ", \"" + book.Name + "\" (" + book.Year + ")", ItemInstruction = (item) => { return(item); }, }; editBookMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { if (editBookMenu.SelectedItem == 0) { Console.Clear(); Console.WriteLine("Введите автора:"); string author = Console.ReadLine(); book.Author = author; editBookMenu.IsClosed = true; } if (editBookMenu.SelectedItem == 1) { Console.Clear(); Console.WriteLine("Введите название:"); string name = Console.ReadLine(); book.Name = name; editBookMenu.IsClosed = true; } if (editBookMenu.SelectedItem == 2) { Console.Clear(); Console.WriteLine("Введите год:"); string year = Console.ReadLine(); book.Year = year; editBookMenu.IsClosed = true; } } }; editBookMenu.Help += String.Join("\n", "Enter - выбор", "Backspace - назад"); editBookMenu.Use(); }
static void EditUser(User user) { List <string> editUserMenuItems = new List <string>() { "Изменить имя", "Изменить логин", "Изменить пароль", }; Menu <string> editBookMenu = new Menu <string>(editUserMenuItems) { Info = "Редактировать пользователя: \n\n " + user.Name + " (" + user.Login + ":" + user.Password + ")", ItemInstruction = (item) => { return(item); }, }; editBookMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { if (editBookMenu.SelectedItem == 0) { Console.Clear(); Console.WriteLine("Введите имя:"); string name = Console.ReadLine(); user.Name = name; editBookMenu.IsClosed = true; } if (editBookMenu.SelectedItem == 1) { Console.Clear(); Console.WriteLine("Введите логин:"); string login = Console.ReadLine(); user.Login = login; editBookMenu.IsClosed = true; } if (editBookMenu.SelectedItem == 2) { Console.Clear(); Console.WriteLine("Введите пароль:"); string password = Console.ReadLine(); user.Password = password; editBookMenu.IsClosed = true; } } }; editBookMenu.Help += String.Join("\n", "Enter - выбор", "Backspace - назад"); editBookMenu.Use(); }
public static void ShowUsers() { Menu <User> usersMenu = new Menu <User>(users) { Info = "Пользователи:", Empty = "Пользователей нет", ItemInstruction = (item) => { if (item.GetType() == typeof(Admin)) { Console.ForegroundColor = ConsoleColor.White; } else { Console.ForegroundColor = ConsoleColor.DarkGray; } return(item.Name + " (" + item.Login + ":" + item.Password + ")"); }, ColorInfo = new Tuple <ConsoleColor, string>[] { new Tuple <ConsoleColor, string>(ConsoleColor.White, "администратор"), new Tuple <ConsoleColor, string>(ConsoleColor.DarkGray, "пользователь") }, AddItemInstruction = AddUser }; usersMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { EditUser(users[usersMenu.SelectedItem]); } if (key == ConsoleKey.Tab) { usersMenu.AddItem(); } if (key == ConsoleKey.Delete) { usersMenu.DeleteSelectedItem(); } }; usersMenu.Help += String.Join("\n", "Enter - редактировать", "Tab - добавить", "Delete - удалить", "Backspace - назад"); usersMenu.Use(); }
public static void ShowBooks() { Menu <Book> booksMenu = new Menu <Book>(books) { Info = "Библиотека:", Empty = "В библиотеке нет книг", ItemInstruction = (item) => { if (item.IsAvailable) { Console.ForegroundColor = ConsoleColor.Green; } else { Console.ForegroundColor = ConsoleColor.Red; } return(item.Author + ", \"" + item.Name + "\" (" + item.Year + ")"); }, ColorInfo = new Tuple <ConsoleColor, string>[] { new Tuple <ConsoleColor, string>(ConsoleColor.Green, "доступные книги"), new Tuple <ConsoleColor, string>(ConsoleColor.Red, "недоступные книги") }, AddItemInstruction = AddBook }; if (currentUser.GetType() == typeof(Admin)) { booksMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { if (books.Count != 0) { EditBook(books[booksMenu.SelectedItem]); } } if (key == ConsoleKey.Tab) { booksMenu.AddItem(); } if (key == ConsoleKey.Delete) { booksMenu.DeleteSelectedItem(); } }; booksMenu.Help += String.Join("\n", "Enter - редактировать", "Tab - добавить", "Delete - удалить", "Backspace - назад"); } else if (currentUser.GetType() == typeof(User)) { booksMenu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { currentUser.TakeBook(books[booksMenu.SelectedItem]); books[booksMenu.SelectedItem].IsAvailable = false; } }; booksMenu.Help += String.Join("\n", "Enter - взять книгу", "Backspace - назад"); } booksMenu.Use(); }
static void Main(string[] args) { Console.SetBufferSize(Console.WindowWidth, Console.WindowHeight); users = new List <User> { new Admin("admin", "123", "Администратор"), new User("user", "123", "Пользователь"), }; while (true) { Authentication.IsLogged = false; while (currentUser == null) { currentUser = Authentication.Login(); } Authentication.IsLogged = true; List <string> menuItems = new List <string>(); if (currentUser.GetType() == typeof(User)) { menuItems.Add("Книги"); menuItems.Add("Мои книги"); } else if (currentUser.GetType() == typeof(Admin)) { menuItems.Add("Книги"); menuItems.Add("Пользователи"); } menuItems.Add("Выйти из аккаунта"); menuItems.Add("Закрыть"); Menu <string> menu = new Menu <string>(menuItems) { Info = "Здравствуйте, вы вошли как: " + currentUser.Name, ItemInstruction = (item) => { return(item); }, }; menu.KeyInstructions = (key) => { if (key == ConsoleKey.UpArrow) { menu.SelectedItem--; } if (key == ConsoleKey.DownArrow) { menu.SelectedItem++; } }; if (currentUser.GetType() == typeof(User)) { menu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { if (menu.SelectedItem == 0) { Library.ShowBooks(); } if (menu.SelectedItem == 1) { User.ShowBooks(); } if (menu.SelectedItem == 2) { menu.IsClosed = true; Authentication.Logout(); } if (menu.SelectedItem == 3) { Environment.Exit(0); } } } } ; else if (currentUser.GetType() == typeof(Admin)) { menu.KeyInstructions += (key) => { if (key == ConsoleKey.Enter) { if (menu.SelectedItem == 0) { Library.ShowBooks(); } if (menu.SelectedItem == 1) { Admin.ShowUsers(); } if (menu.SelectedItem == 2) { menu.IsClosed = true; Authentication.Logout(); } if (menu.SelectedItem == 3) { Environment.Exit(0); } } } } ; menu.Help += "Enter - выбор"; while (Authentication.IsLogged) { menu.Use(); } } }