Exemple #1
0
        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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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;
                }
                }
            }
        }
Exemple #6
0
        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);
        }