private int SelectUserFromList(int?exceptedId = null) { var users = BusinessService.GetUsers(exceptedId); for (var i = 0; i < users.Count; i++) { var user = users[i]; Console.WriteLine($"{i + 1}. {user.Login}"); } var selectedUserId = ConsoleExtensions.ReadInteger(minValue: Constants.OperationConstants.ReturnOperationId, maxValue: users.Count - 1); if (selectedUserId == Constants.OperationConstants.ReturnOperationId) { return(selectedUserId); } return(users[selectedUserId - 1].Id.GetValueOrDefault()); }
private int SelectBookFromList(bool?isBookInLibrary = null) { var books = isBookInLibrary != null?BusinessService.GetBooks(isBookInLibrary.Value) : BusinessService.GetBooks(); for (var i = 0; i < books.Count; i++) { var book = books[i]; Console.WriteLine($"{i + 1}. {book.Name}"); } var selectedBookId = ConsoleExtensions.ReadInteger(minValue: Constants.OperationConstants.ReturnOperationId, maxValue: books.Count - 1); if (selectedBookId == Constants.OperationConstants.ReturnOperationId) { return(selectedBookId); } return(books[selectedBookId - 1].Id.GetValueOrDefault()); }
private int SelectPublisherFromList() { var publishers = BusinessService.GetPublishers(); for (var i = 0; i < publishers.Count; i++) { var publisher = publishers[i]; Console.WriteLine($"{i + 1}. {publisher.Name}"); } var selectedPublisherId = ConsoleExtensions.ReadInteger(minValue: Constants.OperationConstants.ReturnOperationId, maxValue: publishers.Count - 1); if (selectedPublisherId == Constants.OperationConstants.ReturnOperationId) { return(selectedPublisherId); } return(publishers[selectedPublisherId - 1].Id.GetValueOrDefault()); }
private int SelectAuthorFromList() { var authors = BusinessService.GetAuthors(); for (var i = 0; i < authors.Count; i++) { var author = authors[i]; Console.WriteLine($"{i + 1}. {author.DisplayName}"); } var selectedAuthorId = ConsoleExtensions.ReadInteger(minValue: Constants.OperationConstants.ReturnOperationId, maxValue: authors.Count - 1); if (selectedAuthorId == Constants.OperationConstants.ReturnOperationId) { return(selectedAuthorId); } return(authors[selectedAuthorId - 1].Id.GetValueOrDefault()); }
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); }