Пример #1
0
        static void menu()
        {
            Console.Clear();
            Console.Write("" +
                          "---------------------------------\n" +
                          "              Menu\n" +
                          "---------------------------------\n" +
                          " 0 . Sair\n" +
                          " 1 . Adicionar Livro\n" +
                          " 2 . Pesquisar Livro (sintetico)\n" +
                          " 3 . Pesquisar Livro (analitico)\n" +
                          " 4 . Adicionar Exemplar\n" +
                          " 5 . Registrar emprestimo\n" +
                          " 6 . Registrar devolução\n" +
                          " Digite uma opção: ");
            try {
                opcao = Convert.ToInt16(Console.ReadLine());
            } catch (Exception) {
                AddExcecao(" ERRO: Parametro incorreto!", 1500);
            }

            switch (opcao)
            {
            case 1:
                Livro novoLivro = new Livro();
                Console.Write("" +
                              "---------------------------------\n" +
                              "         Adicionar Livro\n" +
                              "---------------------------------\n" +
                              " Digite o titulo: "
                              );
                novoLivro.Titulo = Console.ReadLine();
                Console.Write(" Digite o autor: ");
                novoLivro.Author = Console.ReadLine();
                Console.Write(" Digite a editora: ");
                novoLivro.Editora    = Console.ReadLine();
                novoLivro.Isbn       = Program.livros.getListLength();
                novoLivro.Exemplares = new List <Exemplar>();
                Program.livros.adicionar(novoLivro);
                Console.WriteLine(" Livro adicionado com sucesso!\n Identificador: " + (livros.getListLength() - 1));
                Thread.Sleep(1750);
                break;

            case 2:
                Console.Write("" +
                              "---------------------------------\n" +
                              "   Pesquisar Livro (sintetico)\n" +
                              "---------------------------------\n" +
                              " Digite o identificador do livro: "
                              );
                PesquisarLivro();
                Console.WriteLine(" Pressione qualquer tecla para continuar...");
                Console.ReadKey();
                break;

            case 3:
                Console.Write("" +
                              "---------------------------------\n" +
                              "   Pesquisar Livro (analítico)\n" +
                              "---------------------------------\n" +
                              " Digite o identificador do livro: "
                              );
                Livro livro = new Livro();
                livro = PesquisarLivro();
                foreach (Exemplar exemplar in livro.Exemplares)
                {
                    Console.WriteLine(" Exemplar " + exemplar.Tombo + ":");
                    foreach (Emprestimo emprestimo in exemplar.Emprestimo)
                    {
                        Console.WriteLine("     Emprestimo:");
                        Console.WriteLine("     Data de Emprestimo: " + emprestimo.DtEmprestimo);
                        if (emprestimo.DtDevolucao != new DateTime(1, 1, 1, 0, 0, 0))
                        {
                            Console.WriteLine("     Data de Devolução: " + emprestimo.DtDevolucao);
                        }
                        else
                        {
                            Console.WriteLine("     Data de Devolução: Pendente.");
                        }
                    }
                }
                Console.WriteLine(" Pressione qualquer tecla para continuar...");
                Console.ReadKey();
                break;

            case 4:
                Console.Write("" +
                              "---------------------------------\n" +
                              "       Adicionar Exemplar\n" +
                              "---------------------------------\n" +
                              " Digite o identificador do livro: "
                              );
                Livro livroComNovoExemplar = new Livro();
                try {
                    livroComNovoExemplar.Isbn = Convert.ToInt32(Console.ReadLine());
                    livros.Acervo[livroComNovoExemplar.Isbn] = livros.pesquisar(livroComNovoExemplar);
                    Exemplar novoExemplar = new Exemplar(livros.Acervo[livroComNovoExemplar.Isbn].getListLength());
                    livros.Acervo[livroComNovoExemplar.Isbn].adicionarExemplar(novoExemplar);
                    Console.WriteLine(" FEITO: Nova quantidade de exemplares: " + livros.Acervo[livroComNovoExemplar.Isbn].qtdeExemplares());
                } catch (Exception) {
                    AddExcecao(" ERRO: Parametro incorreto!", 1500);
                    break;
                }
                Thread.Sleep(1250);
                break;

            case 5:
                Console.Write("" +
                              "---------------------------------\n" +
                              "       Registrar Emprestimo\n" +
                              "---------------------------------\n"
                              );
                Int32 livroId = 0, tomboID = 0;
                try {
                    Console.Write(" Digite o identificador do livro: ");
                    livroId = Convert.ToInt32(Console.ReadLine());
                    Console.Write(" Digite o tombo do exemplar: ");
                    tomboID = Convert.ToInt32(Console.ReadLine());
                } catch (Exception) {
                    AddExcecao(" ERRO: Parametro incorreto!", 2500);
                }
                foreach (Livro livroNovoEmprest in livros.Acervo)
                {
                    if (livroNovoEmprest.Isbn == livroId)
                    {
                        foreach (Emprestimo emprest in livroNovoEmprest.Exemplares[tomboID].Emprestimo)
                        {
                            if (emprest.DtDevolucao == new DateTime(1, 1, 1, 0, 0, 0))
                            {
                                AddExcecao(" AVISO: Este exemplar não se encontra disponível pois já foi emprestado e ainda não foi devolvido.", 2500);
                                break;
                            }
                        }
                        if (livroNovoEmprest.Exemplares[tomboID].Tombo == livroNovoEmprest.Exemplares[tomboID].Emprestimo.Count - 1 || livroNovoEmprest.Exemplares[tomboID].Emprestimo.Count == 0)
                        {
                            livroNovoEmprest.Exemplares[tomboID].Emprestimo.Add(new Emprestimo(DateTime.Now));
                            Console.WriteLine(" FEITO: Novo emprestimo realizado as: " + livroNovoEmprest.Exemplares[tomboID].Emprestimo[livroNovoEmprest.Exemplares[tomboID].Emprestimo.Count - 1].DtEmprestimo);
                        }
                    }
                }
                Thread.Sleep(2500);
                break;

            case 6:
                Console.Write("" +
                              "---------------------------------\n" +
                              "       Registrar Devoluçao\n" +
                              "---------------------------------\n"
                              );
                Int32 livroId2 = 0;
                try {
                    Console.Write(" Digite o identificador do livro: ");
                    livroId2 = Convert.ToInt32(Console.ReadLine());
                } catch (Exception) {
                    AddExcecao(" Erro: Parametro incorreto!", 2500);
                    break;
                }
                foreach (Livro livroDevolver in livros.Acervo)
                {
                    if (livroDevolver.Isbn == livroId2)
                    {
                        foreach (Exemplar exemplar in livroDevolver.Exemplares)
                        {
                            if (exemplar.Tombo == exemplar.Emprestimo.Count - 1)
                            {
                                exemplar.devolver();
                                Console.WriteLine(" Emprestimo Retornado as: " + exemplar.Emprestimo[exemplar.Emprestimo.Count - 1].DtDevolucao);
                            }
                        }
                    }
                }
                Thread.Sleep(2500);
                break;

            default:
                System.Environment.Exit(0);
                break;
            }
        }
Пример #2
0
 //Metodos proprios
 public void adicionarExemplar(Exemplar exemplar)
 {
     Exemplares.Add(exemplar);
 }