Example #1
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;
                }
                }
            }
        }