private static void InputPublisherFields(BookItem book) { var publisherItem = new PublisherItem(); Console.WriteLine("Введите имя издателя:"); publisherItem.Name = ConsoleExtensions.ReadNotEmptyString(); book.Publisher = publisherItem; }
public AuthResult SignIn() { while (true) { PrintMainMenu(); var choice = Console.ReadKey(); switch (choice.Key) { case ConsoleKey.D1: { Console.Clear(); Console.WriteLine("Форма входа в аккаунт"); Console.WriteLine("Введите логин:"); var login = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите пароль:"); var password = ConsoleExtensions.InputPassword(); var authResult = AuthService.SignIn(login, password); if (!authResult.IsSuccess || authResult.Role == null) { Console.WriteLine("Такого аккаунта нет в системе"); Console.WriteLine(); break; } Console.WriteLine("\n\nВход успешно произведен\nНажмите любую клавишу для продолжения"); Console.ReadKey(); Console.Clear(); return(authResult); } case ConsoleKey.D2: { Environment.Exit(0); break; } default: { Console.Clear(); break; } } } }
private static void InputAuthorFields(BookItem book) { var authorItem = new AuthorItem(); Console.WriteLine("Введите имя автора:"); authorItem.Name = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите фамилию автора:"); authorItem.Surname = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите отчество автора:"); authorItem.Patronymic = ConsoleExtensions.ReadNotEmptyString(); book.Author = authorItem; }
public void UsersManagement() { Console.Clear(); var exitToken = true; while (exitToken) { PrintUserManagementMenu(); var choice = Console.ReadKey(); switch (choice.Key) { case ConsoleKey.D1: { Console.Clear(); var users = BusinessService.GetUsersIncludeBooks(); foreach (var user in users) { Console.WriteLine($"Id: {user.Id}"); Console.WriteLine($"Логин: {user.Login}"); Console.WriteLine($"Роль: {user.Role.GetDescription()}"); Console.WriteLine($"Номер читательского билета: {user.LibraryCardNumber}"); if (user.LastTakenBooks != null && user.LastTakenBooks.Any()) { Console.WriteLine($"Последние взятые книги: {user.LastTakenBooks.Select(w => w.Name).Aggregate((i, j) => i + ", " + j)}"); } Console.WriteLine(); } PrintPressAnyBottom(); Console.Clear(); break; } case ConsoleKey.D2: { Console.Clear(); var users = BusinessService.GetUserListWithBooks(); foreach (var user in users) { Console.WriteLine($"Id: {user.Id}"); Console.WriteLine($"Логин: {user.Login}"); Console.WriteLine($"Роль: {user.Role.GetDescription()}"); Console.WriteLine($"Номер читательского билета: {user.LibraryCardNumber}"); if (user.LastTakenBooks != null && user.LastTakenBooks.Any()) { Console.WriteLine($"Книги на руках: {user.LastTakenBooks?.Select(w => w.Name).Aggregate((i, j) => i + ", " + j)}"); } Console.WriteLine(); } PrintPressAnyBottom(); Console.Clear(); break; } case ConsoleKey.D3: { Console.Clear(); Console.WriteLine("Создание новой учетной записи"); Console.WriteLine("Введите логин:"); var login = ConsoleExtensions.ReadNotEmptyString();; Console.WriteLine("Введите пароль:"); var password = ConsoleExtensions.InputPassword(); Console.WriteLine("\nВведите уникальный 6-значный номер читательского билета или оставьте пустым для автоматической генерации"); var cardNumber = InputCardNumber(); Console.WriteLine("Тип записи: 0 - пользователь, 1 - администратор:"); var roleType = ConsoleExtensions.ReadRoleType(); var userItem = new UserItem { Login = login, LibraryCardNumber = cardNumber, Password = password, Role = roleType }; var result = BusinessService.CreateUser(userItem); if (!result.IsSuccess) { foreach (var error in result.Errors) { Console.WriteLine(error.Message); } Console.WriteLine(); } else { Console.WriteLine("\n\nСоздание прошло успешно\nНажмите любую клавишу для продолжения"); } Console.ReadKey(); Console.Clear(); break; } case ConsoleKey.D4: { Console.Clear(); Console.WriteLine("Редактирование существующей учетной записи"); Console.WriteLine($"Для выхода введите {Constants.OperationConstants.ReturnOperationId}"); Console.WriteLine("Выберите учетную запись:"); var selectedUserId = SelectUserFromList(); Console.Clear(); if (selectedUserId == Constants.OperationConstants.ReturnOperationId) { break; } Console.WriteLine("Введите новый логин:"); var login = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите новый пароль:"); var password = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите новый уникальный 6-значный номер читательского билета или оставьте пустым для автоматической генерации"); var cardNumber = InputCardNumber(selectedUserId); Console.WriteLine("Новый тип записи: 0 - пользователь, 1 - администратор:"); var roleType = ConsoleExtensions.ReadRoleType(); var userItem = new UserItem { Id = selectedUserId, Login = login, LibraryCardNumber = cardNumber, Password = password, Role = roleType }; var result = BusinessService.UpdateUser(userItem); Console.Clear(); if (!result.IsSuccess) { foreach (var error in result.Errors) { Console.WriteLine(error.Message); } Console.WriteLine(); } break; } case ConsoleKey.D5: { Console.Clear(); Console.WriteLine("Удаление учетной записи"); Console.WriteLine($"Для выхода введите {Constants.OperationConstants.ReturnOperationId}"); Console.WriteLine("Выберите учетную запись:"); var selectedUserId = SelectUserFromList(CurrentUserId); if (selectedUserId == Constants.OperationConstants.ReturnOperationId) { Console.Clear(); break; } BusinessService.DeleteUser(selectedUserId); Console.Clear(); Console.WriteLine("Пользователь был успешно удален"); break; } case ConsoleKey.D6: { Console.Clear(); exitToken = false; break; } default: { Console.Clear(); break; } } } }
public void BooksView() { Console.Clear(); var exitToken = true; while (exitToken) { Console.Clear(); PrintBooksViewMenu(); var choice = Console.ReadKey(); switch (choice.Key) { case ConsoleKey.D1: { Console.Clear(); Console.WriteLine("Вывод списка книг"); var books = BusinessService.GetBooksWithEverything(); foreach (var book in books) { PrintBookInfo(book); } PrintPressAnyBottom(); break; } case ConsoleKey.D2: { Console.Clear(); Console.WriteLine("Вывод списка книг в отфильтрованном по определенному полю виде"); PrintBookFieldSelection(); var selectedFilteringType = ConsoleExtensions.ReadInteger(Enum.GetValues(typeof(BookFilteringType)).Cast <BookFilteringType>().Cast <int>().ToList()); Console.Clear(); Console.WriteLine("Введите значение для фильтрации"); var filter = new BookFilter(); switch (selectedFilteringType) { case (int)BookFilteringType.ByName: { filter.Name = ConsoleExtensions.ReadNotEmptyString(); break; } case (int)BookFilteringType.ByRegNumber: { filter.RegNumber = ConsoleExtensions.ReadNotEmptyString(); break; } case (int)BookFilteringType.ByNumberOfPages: { filter.NumberOfPages = ConsoleExtensions.ReadInteger(); break; } case (int)BookFilteringType.ByPublicationYear: { filter.PublicationYear = ConsoleExtensions.ReadInteger(); break; } case (int)BookFilteringType.ByIsBookInLibrary: { Console.WriteLine("Введите либо {0}, либо {1}", Constants.Strings.Yes, Constants.Strings.No); filter.IsBookInLibrary = ConsoleExtensions.ReadBoolean(); break; } case (int)BookFilteringType.ByPublisherName: { filter.PublisherName = ConsoleExtensions.ReadNotEmptyString(); break; } case (int)BookFilteringType.ByAuthorName: { filter.AuthorName = ConsoleExtensions.ReadNotEmptyString(); break; } case (int)BookFilteringType.ByLastUserName: { filter.LastUserName = ConsoleExtensions.ReadNotEmptyString(); break; } } Console.Clear(); var books = BusinessService.GetFilteredBooks(filter); foreach (var book in books) { PrintBookInfo(book); } PrintPressAnyBottom(); break; } case ConsoleKey.D3: { Console.Clear(); Console.WriteLine("Вывод списка книг в отсортированном виде"); PrintBookFieldSelection(); var selectedOrderingType = ConsoleExtensions.ReadInteger(Enum.GetValues(typeof(BookFilteringType)).Cast <BookFilteringType>().Cast <int>().ToList()); Console.Clear(); Console.WriteLine("Вывести по возрастанию? (Да, Нет)"); var isAsc = ConsoleExtensions.ReadBoolean(); var books = BusinessService.GetSortedBooks((BookFilteringType)selectedOrderingType, isAsc); Console.Clear(); ; foreach (var book in books) { PrintBookInfo(book); } PrintPressAnyBottom(); break; } case ConsoleKey.D4: { Console.Clear(); Console.WriteLine("Вывод книг в алфавитном порядке, изданных после заданного года"); Console.WriteLine("Введите год:"); var selectedYear = ConsoleExtensions.ReadInteger(); var books = BusinessService.GetOrderedBooksAfterSelectedYear(selectedYear); Console.Clear(); foreach (var book in books) { PrintBookInfo(book); } PrintPressAnyBottom(); break; } case ConsoleKey.D5: { Console.Clear(); Console.WriteLine("Вывод книг находящихся в текущий момент у читателей"); var books = BusinessService.GetAlreadyTakenBooks(); foreach (var book in books) { PrintBookInfo(book); } PrintPressAnyBottom(); break; } case ConsoleKey.D6: { Console.Clear(); exitToken = false; break; } default: { Console.Clear(); break; } } } }
public void FileManagement() { Console.Clear(); var exitToken = true; while (exitToken) { Console.Clear(); PrintFileManagementMenu(); var choice = Console.ReadKey(); switch (choice.Key) { case ConsoleKey.D1: { Console.Clear(); Console.WriteLine("Создание файла"); Console.WriteLine("Введите название файла:"); var fileName = ConsoleExtensions.ReadNotEmptyString(); var result = FileService.CreateFile(fileName); Console.WriteLine(); if (!result.IsSuccess) { foreach (var error in result.Errors) { Console.WriteLine(error.Message); } } else { Console.WriteLine($"Файл данных \"{fileName}\" успешно создан"); } PrintPressAnyBottom(); break; } case ConsoleKey.D2: { Console.Clear(); Console.WriteLine("Список существующих файлов"); var fileInfos = FileService.GetCurrentFiles(); if (fileInfos == null || fileInfos.Count == 0) { Console.WriteLine("На текущий момент нет файлов с данными"); } else { foreach (var(fileId, fileName) in fileInfos) { Console.WriteLine($"{fileId + 1}. {Path.GetFileName(fileName)}"); } } PrintPressAnyBottom(); break; } case ConsoleKey.D3: { Console.Clear(); Console.WriteLine("Загрузка данных из существующего файла"); Console.WriteLine("Выберите номер файла"); Console.WriteLine($"Для выхода введите {Constants.OperationConstants.ReturnOperationId}"); Console.WriteLine("!!! Внимание, данное действие сотрет все несохраненные данные"); Console.WriteLine(); var fileInfos = FileService.GetCurrentFiles(); if (fileInfos == null || fileInfos.Count == 0) { Console.WriteLine("На текущий момент нет файлов с данными"); } else { foreach (var(fileId, fileName) in fileInfos) { Console.WriteLine($"{fileId}. {Path.GetFileName(fileName)}"); } var fileSelection = ConsoleExtensions.ReadInteger(new List <int> { Constants.OperationConstants.ReturnOperationId, fileInfos.Count - 1 }); if (fileSelection == Constants.OperationConstants.ReturnOperationId) { break; } var result = FileService.ReadFile(fileInfos[fileSelection]); if (!result.IsSuccess) { foreach (var error in result.Errors) { Console.WriteLine(error.Message); } } else { Console.WriteLine("Операция прошла успешно"); } } PrintPressAnyBottom(); break; } case ConsoleKey.D4: { Console.Clear(); Console.WriteLine("Удаление файла"); Console.WriteLine("Выберите номер файла"); Console.WriteLine($"Для выхода введите {Constants.OperationConstants.ReturnOperationId}"); Console.WriteLine(); var fileInfos = FileService.GetCurrentFiles(); if (fileInfos == null || fileInfos.Count == 0) { Console.WriteLine("На текущий момент нет файлов с данными"); } else { foreach (var(fileId, fileName) in fileInfos) { Console.WriteLine($"{fileId}. {Path.GetFileName(fileName)}"); } var fileSelection = ConsoleExtensions.ReadInteger(new List <int> { Constants.OperationConstants.ReturnOperationId, fileInfos.Count - 1 }); if (fileSelection == Constants.OperationConstants.ReturnOperationId) { break; } var result = FileService.DeleteFile(fileInfos[fileSelection]); if (!result.IsSuccess) { foreach (var error in result.Errors) { Console.WriteLine(error.Message); } } else { Console.WriteLine("Операция прошла успешно"); } } PrintPressAnyBottom(); break; } case ConsoleKey.D5: { Console.Clear(); exitToken = false; break; } default: { Console.Clear(); break; } } } }
private BookItem CreateOrUpdateBook() { var bookItem = new BookItem(); Console.WriteLine("Введите название книги:"); bookItem.Name = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine("Введите количество страниц:"); bookItem.NumberOfPages = ConsoleExtensions.ReadInteger(); Console.WriteLine("Введите год публикации:"); bookItem.PublicationYear = ConsoleExtensions.ReadYear(); Console.WriteLine("Введите регистрационный номер:"); bookItem.RegNumber = ConsoleExtensions.ReadNotEmptyString(); Console.WriteLine(); Console.WriteLine($"{Constants.OperationConstants.AddNewSubEntityOperationId}. Добавить нового автора:"); Console.WriteLine($"{Constants.OperationConstants.SelectSubEntityOperationId}. Выбрать из существующих:"); var authorOperationChoice = ConsoleExtensions.ReadInteger(new List <int> { Constants.OperationConstants.AddNewSubEntityOperationId, Constants.OperationConstants.SelectSubEntityOperationId }); switch (authorOperationChoice) { case Constants.OperationConstants.SelectSubEntityOperationId: { Console.WriteLine("Существующие авторы:"); Console.WriteLine($"Нажмите \"{Constants.OperationConstants.ReturnOperationId}\" для добавления нового автора"); var selectedAuthorId = SelectAuthorFromList(); if (selectedAuthorId == Constants.OperationConstants.ReturnOperationId) { InputAuthorFields(bookItem); } else { bookItem.AuthorId = selectedAuthorId; } break; } case Constants.OperationConstants.AddNewSubEntityOperationId: { InputAuthorFields(bookItem); break; } } Console.WriteLine(); Console.WriteLine($"{Constants.OperationConstants.AddNewSubEntityOperationId}. Добавить нового издателя:"); Console.WriteLine($"{Constants.OperationConstants.SelectSubEntityOperationId}. Выбрать из существующих:"); var publisherOperationChoice = ConsoleExtensions.ReadInteger(new List <int> { Constants.OperationConstants.AddNewSubEntityOperationId, Constants.OperationConstants.SelectSubEntityOperationId }); switch (publisherOperationChoice) { case Constants.OperationConstants.SelectSubEntityOperationId: { Console.WriteLine("Существующие издатели:"); Console.WriteLine($"Нажмите \"{Constants.OperationConstants.ReturnOperationId}\" для добавления нового издателя"); var selectedPublisherId = SelectPublisherFromList(); if (selectedPublisherId == Constants.OperationConstants.ReturnOperationId) { InputPublisherFields(bookItem); } else { bookItem.PublisherId = selectedPublisherId; } break; } case Constants.OperationConstants.AddNewSubEntityOperationId: { InputPublisherFields(bookItem); break; } } bookItem.IsBookInLibrary = false; return(bookItem); }