示例#1
0
        protected ModelClass.IID SearchMenu(string title)
        {
            ModelClass.IID result = null;
            switch (ReadChoice(true, title, new string[] {
                "Автора", "Книгу", "Экземпляр книги", "Читателя", "Вернутся в главное меню"
            }))
            {
            case 0:
                result = Search("Введите id или Имя Фамилию автора", controller.FindAuthors, DisplayAuthorShort);
                if (result != null)
                {
                    Console.WriteLine("\r\nАвтор\r\n" + DisplayAuthor(result as ModelClass.Author));
                }
                return(result);

            case 1:
                result = Search("Введите id, название книги, год или автора", controller.FindBooks, DisplayBookShort);
                if (result != null)
                {
                    Console.WriteLine("\r\nКнига\r\n" + DisplayBook(result as ModelClass.Book));
                }
                return(result);

            case 2:
                result = Search("Введите id, артикул экземпляра или название книги", controller.FindCopies, DisplayCopyShort);
                if (result != null)
                {
                    Console.WriteLine("\r\nЭкземпляр книги\r\n" + DisplayCopy(result as ModelClass.Copy));
                }
                return(result);

            case 3:
                result = Search("Введите id, Имя Фамилию, номер телефона или адрес читателя ", controller.FindReaders, DisplayReaderShort);
                if (result != null)
                {
                    Console.WriteLine("\r\nЧитатель\r\n" + DisplayReader(result as ModelClass.Reader));
                }
                return(result);
            }
            return(null);
        }
示例#2
0
        public void Show()
        {
            while (true)
            {
                ModelClass.IID o = null;
                switch (ReadChoice(true, "Главное меню", new string[] {
                    "Выдача", "Возврат", "Поиск", "Добавить", "Удалить", "Загрузить", "Сохранить", "Выход"
                }))
                {
                case 0:
                    var copy = Search("Выберите экземпляр для выдачи. Введите id, артикул экземпляра или название книги",
                                      controller.FindCopies, DisplayCopyShort);
                    if (copy == null)
                    {
                        break;
                    }
                    if (copy.OnHand != 0)
                    {
                        Console.WriteLine("Книга уже выданa читателю " + DisplayReaderShort(controller.GetReader(copy.OnHand)));
                        Console.ReadKey();
                        break;
                    }
                    var reader = Search("Выберите читателя. Введите id, Имя Фамилию, номер телефона или адрес читателя ",
                                        controller.FindReaders, DisplayReaderShort);
                    if (reader == null)
                    {
                        break;
                    }
                    controller.RentBook(copy.ItemId, reader.ItemId);
                    Console.WriteLine("Книга выдана");
                    Console.ReadKey();
                    break;

                case 1:
                    var reader2 = Search("Выберите читателя. Введите id, Имя Фамилию, номер телефона или адрес читателя ",
                                         controller.FindReaders, DisplayReaderShort);
                    if (reader2 == null)
                    {
                        break;
                    }
                    if (reader2.OnHand.Count == 0)
                    {
                        Console.WriteLine("Нету книг для возврата");
                        Console.ReadKey();
                        break;
                    }
                    int retcopyid = ReadChoice(false, "Выберите книгу для возврата", new string[] {
                        "Выйти"
                    }.Concat(reader2.OnHand.Select(x => DisplayCopyShort(controller.GetCopy(x)))).ToArray());
                    switch (retcopyid)
                    {
                    case 0: break;

                    default:
                        retcopyid = reader2.OnHand[retcopyid - 1];
                        var retcopy = controller.GetCopy(retcopyid);
                        int days    = (int)DateTime.Now.Subtract(retcopy.DateTaken).TotalDays;
                        if (days > 30)
                        {
                            Console.WriteLine("Возврат задержан, сумма штрафа: "
                                              + (days - 30).ToString() + " x 4.5 = " + (days * 4.5F).ToString());
                        }
                        else
                        {
                            Console.WriteLine("Книга возвращена");
                        }
                        controller.ReturnBook(retcopyid);
                        Console.ReadKey();
                        break;
                    }
                    break;

                case 2:
                    o = SearchMenu("Поиск");
                    if (o != null)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Нажмите любую кнопку чтобы вернутся в главное меню");
                        Console.ReadKey();
                    }
                    break;

                case 3:
                    switch (ReadChoice(true, "Добавить", new string[] {
                        "Автора", "Книгу", "Экземпляр книги", "Читателя", "Вернутся в главное меню"
                    }))
                    {
                    case 0:
                        o = controller.AddAuthor(ReadString(false, "Введите имя"), ReadString(false, "Введите фамилию"));
                        if (o != null)
                        {
                            Console.WriteLine("\r\n" + DisplayAuthor(o as ModelClass.Author));
                        }
                        break;

                    case 1:
                        var a = Search("Выберите автора. Введите id или Имя Фамилию автора", controller.FindAuthors, DisplayAuthorShort);
                        if (a == null)
                        {
                            break;
                        }
                        o = controller.AddBook(a.ItemId, ReadString(false, "Введите название"), ReadInt(false, "Введите год издания"));
                        if (o != null)
                        {
                            Console.WriteLine("\r\n" + DisplayBook(o as ModelClass.Book));
                        }
                        break;

                    case 2:
                        var b = Search("Введите id, название книги, год или автора", controller.FindBooks, DisplayBookShort);
                        if (b == null)
                        {
                            break;
                        }
                        o = controller.AddCopy(b.ItemId, ReadString(false, "Введите артикул"));
                        if (o != null)
                        {
                            Console.WriteLine("\r\n" + DisplayCopy(o as ModelClass.Copy));
                        }
                        break;

                    case 3:
                        o = controller.AddReader(ReadString(false, "Введите Имя"), ReadString(true, "Введите Фамилию"),
                                                 ReadString(false, "Введите адресс"), ReadInt(false, "Введите телефон"));
                        if (o != null)
                        {
                            Console.WriteLine("\r\n" + DisplayReader(o as ModelClass.Reader));
                        }
                        break;
                    }
                    if (o != null)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Добавлено. Нажмите любую кнопку чтобы вернутся в главное меню");
                        Console.ReadKey();
                    }
                    break;

                case 4:
                    o = SearchMenu("Удалить");
                    if (o != null)
                    {
                        Console.WriteLine();
                        if (ReadChoice(false, "Удалить этот обьект?", new string[] { "Нет", "Да" }) == 1)
                        {
                            if (o is ModelClass.Author)
                            {
                                controller.RemoveAuthor(o.ItemId);
                            }
                            else if (o is ModelClass.Book)
                            {
                                controller.RemoveBook(o.ItemId);
                            }
                            else if (o is ModelClass.Copy)
                            {
                                controller.RemoveCopy(o.ItemId);
                            }
                            else if (o is ModelClass.Reader)
                            {
                                controller.RemoveReader(o.ItemId);
                            }
                        }
                    }
                    break;

                case 5:
                    controller.LoadModel("data.json");
                    Console.Clear();
                    Console.WriteLine();
                    Console.WriteLine("Загружено");
                    Console.ReadKey();
                    break;

                case 6:

                    controller.SaveModel("data.json");
                    Console.Clear();
                    Console.WriteLine();
                    Console.WriteLine("Сохранено");
                    Console.ReadKey();
                    break;

                case 7:
                    return;
                }
            }
        }