public static void ListarAtrasados() { RetiradaNegocio retiradaNegocio = new RetiradaNegocio(); LeitorNegocio leitorNegocio = new LeitorNegocio();// Atribui o cliente pesquisado por key (chave) LivroNegocio livroNegocio = new LivroNegocio(); if (retiradaNegocio.Listar().Where(r => r.DataLimite > DateTime.Now).Count() > 0) { foreach (var atrasados in retiradaNegocio.Listar().Where(r => r.DataLimite < DateTime.Now && r.Devolvido == false)) { Console.WriteLine($"Código: {atrasados.Codigo}"); Console.WriteLine($"Leitor: {leitorNegocio.Selecionar(atrasados.CodigoLeitor).Nome}"); Console.WriteLine($"Livro: {livroNegocio.Selecionar(atrasados.CodigoLivro).Titulo}"); Console.WriteLine($"Data emprestimo: {atrasados.DataEmprestimo}"); Console.WriteLine($"Data limite: {atrasados.DataLimite}"); var diasAtrasado = DateTime.Now - atrasados.DataLimite; Console.WriteLine($"Dias atrasado: {diasAtrasado.Days}"); Console.WriteLine(); } } else { Console.WriteLine("Nenhum livro atrasado"); } }
public static void DevolverLivro(int codigoLeitor) { RetiradaNegocio retiradaNegocio = new RetiradaNegocio(); LeitorNegocio leitorNegocio = new LeitorNegocio(); LivroNegocio livroNegocio = new LivroNegocio(); //Obter todos os livros que o leitor pegou emprestado var listaLivrosEmprestado = retiradaNegocio.Listar().Where(r => r.CodigoLeitor == codigoLeitor && r.Devolvido == false); //Retornando o nome do leitor que esta com o livro Console.WriteLine($"Nome do leitor: {leitorNegocio.Selecionar(codigoLeitor).Nome}"); foreach (var item in listaLivrosEmprestado) { Console.WriteLine($"Codigo da retirada {item.Codigo}"); //Retornando o nome do livro que foi emprestado Console.WriteLine($"Nome do livro {livroNegocio.Selecionar(item.CodigoLivro).Titulo}"); Console.WriteLine($"Data de emprestimo: {item.DataEmprestimo}"); Console.WriteLine($"Data de limite: {item.DataLimite}"); //Verificamos se o livro esta atrasado e caso esteja retornamos uma mensagem dizendo que esta atrasado //Comparamos com a data atual if (item.DataLimite < DateTime.Now) { var diasAtrasado = DateTime.Now - item.DataLimite; Console.WriteLine($"Atrasado a {diasAtrasado.Days}"); double valor = 0.0; valor = CalcularAtraso(Convert.ToInt32(Math.Abs(diasAtrasado.Days))); Console.WriteLine($"O leitor deve pagar {valor} reais pelo atraso"); } Console.WriteLine(); } Console.Write("Digite o codigo de emprestimo para devolver: "); var codigoDevolucao = Convert.ToInt32(Console.ReadLine()); var devolucao = retiradaNegocio.Selecionar(codigoDevolucao); double valorDevolucao = 0.0; if (devolucao.DataLimite < DateTime.Now) { var diasAtrasado = DateTime.Now - devolucao.DataLimite; valorDevolucao = CalcularAtraso(Convert.ToInt32(diasAtrasado.Days)); Console.WriteLine($"O leitor deve pagar {valorDevolucao} reais pelo atraso, antes de devolver"); Console.Write("Confirme o pagamento digitando S ou N para cancelar (S, N): "); var confirmarPagamento = Console.ReadLine(); if (confirmarPagamento.ToLower() == "s") { devolucao.Devolvido = true; Console.WriteLine("Livro devolvido"); } else { Console.WriteLine("operação cancelada"); } } else { var confirmar = Console.ReadLine(); if (confirmar.ToLower() == "s") { devolucao.Devolvido = true; Console.WriteLine("Livro devolvido"); } else { Console.WriteLine("operação cancelada"); } } }
static void Main(string[] args) { //Iniciarlizar(); Metodo criado para teste, sentando valores para Leitor, Livro, e Retirada var opcao = -1; while (opcao != 0) { Console.WriteLine(); Console.WriteLine("Menu Principal"); //Adicionado nessa parte para melhor visualizarmos em qual menu estamos Console.WriteLine("1 - Emprestimo e Devolução de Livro"); Console.WriteLine("2 - Pesquisar Leitor"); Console.WriteLine("3 - Leitor"); Console.WriteLine("4 - Livro"); Console.WriteLine("5 - Atendentede"); Console.WriteLine("0 - Finalizar o programa"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); opcao = Convert.ToInt32(Console.ReadLine()); switch (opcao) { case 1: Console.WriteLine(); Console.WriteLine("1 - Emprestar livro"); Console.WriteLine("2 - Devolver Livro"); Console.WriteLine("3 - Listar Atrasados"); Console.WriteLine("0 - Voltar ao menu"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); int opcaoEmprestimo = Convert.ToInt32(Console.ReadLine()); RetiradaNegocio retiradaNegocio = new RetiradaNegocio(); Console.WriteLine(); switch (opcaoEmprestimo) { case 1: Console.WriteLine(); RegistrarRetirada(); LeitorNegocio leitorEmprestimo = new LeitorNegocio(); LivroNegocio livroEmprestimo = new LivroNegocio(); var ultimaRetirada = retiradaNegocio.Listar().LastOrDefault(); var nomeLeitorEmprestado = leitorEmprestimo.Selecionar(ultimaRetirada.CodigoLeitor).Nome; var tituloLivroEmprestado = livroEmprestimo.Selecionar(ultimaRetirada.CodigoLivro).Titulo; Console.WriteLine(); Console.WriteLine($"Livro emprestado: {tituloLivroEmprestado}"); Console.WriteLine($"Leitor: {nomeLeitorEmprestado}"); Console.WriteLine($"Data do emprestimo: {ultimaRetirada.DataEmprestimo}"); Console.WriteLine($"Dia de devolução: {ultimaRetirada.DataLimite}"); Console.WriteLine(); break; case 2: Console.WriteLine(); Console.Write($"Digite o codigo do leitor: "); int codigoLeitor = Convert.ToInt32(Console.ReadLine()); DevolverLivro(codigoLeitor); Console.WriteLine(); break; case 3: Console.WriteLine(); ListarAtrasados(); Console.WriteLine(); break; default: break; } break; case 2: Console.WriteLine(); Console.WriteLine("1 - Pesquisar por nome"); Console.WriteLine("2 - Listar todos os leitores "); Console.WriteLine("0 - Voltar ao menu"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); var opcaoPesqusa = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); LeitorNegocio leitorPesquisa = new LeitorNegocio(); switch (opcaoPesqusa) { case 1: Console.Write("Digite o nome do leitor: "); var nomeLeitorPesquisa = Console.ReadLine(); if (leitorPesquisa.Listar().FirstOrDefault(r => r.Nome == nomeLeitorPesquisa) != null) { Console.WriteLine(); var leitorPesquisado = leitorPesquisa.Listar().FirstOrDefault(r => r.Nome == nomeLeitorPesquisa); Console.WriteLine($"Código {leitorPesquisado.Codigo} Nome: {leitorPesquisado.Nome}"); } break; case 2: Console.WriteLine(); foreach (var cadaLeitor in leitorPesquisa.Listar()) { Console.WriteLine($"Código {cadaLeitor.Codigo} Nome: {cadaLeitor.Nome}"); } Console.WriteLine(); break; default: break; } break; case 3: var opcaoLeitor = -1; while (opcaoLeitor != 0) { Console.WriteLine(); LeitorNegocio leitorNegocio = new LeitorNegocio(); Console.WriteLine("1 - Cadastrar Leitor"); Console.WriteLine("2 - Cadastrar varios Leitor"); Console.WriteLine("3 - Atualizar cadastro do Leitor"); Console.WriteLine("4 - Listar Leitor"); Console.WriteLine("5 - Deletar Leitor"); Console.WriteLine("0 - Voltar ao menu anterior"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); opcaoLeitor = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); switch (opcaoLeitor) { case 1: Console.WriteLine(); CadastrarLeitor(); break; case 2: Console.WriteLine(); CadastrarLeitor(); Console.Write("Digite cancelar, para voltar ao menu de Leitor ou aperte enter adicionar outro: "); string cancelar = Console.ReadLine(); while (cancelar != "cancelar") { Console.WriteLine(); CadastrarLeitor(); Console.Write("Digite cancelar, para voltar ao menu de Leitor ou aperte enter adicionar outro: "); cancelar = Console.ReadLine(); } break; case 3: Console.WriteLine(); Console.WriteLine("Digite o codigo do Leitor, ou cancelar para voltar o menu de Leitor"); int codigoLeitor = Convert.ToInt32(Console.ReadLine()); //selecionar a Leitor cadastrada para atualizar var leitor = leitorNegocio.Selecionar(codigoLeitor); AtualizarLeitor(leitor); break; case 4: Console.WriteLine(); foreach (var cadaLeitor in leitorNegocio.Listar()) { Console.WriteLine($"Código {cadaLeitor.Codigo} Nome: {cadaLeitor.Nome}"); } break; case 5: Console.WriteLine(); Console.Write("Para deletar um leitor, digite o codigo dele: "); var codigoLeitorRemover = Convert.ToInt32(Console.ReadLine()); if (leitorNegocio.Selecionar(codigoLeitorRemover) != null) { var removerLeitor = leitorNegocio.Selecionar(codigoLeitorRemover); leitorNegocio.Deletar(removerLeitor); } break; default: break; } } break; case 4: var opcaoLivro = -1; while (opcaoLivro != 0) { Console.WriteLine(); LivroNegocio livroNegocio = new LivroNegocio(); Console.WriteLine("1 - Cadastrar Livro"); Console.WriteLine("2 - Cadastrar varios Livro"); Console.WriteLine("3 - Atualizar cadastro do Livro"); Console.WriteLine("4 - Listar Livro"); Console.WriteLine("5 - Deletar Livro"); Console.WriteLine("0 - Voltar ao menu anterior"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); opcaoLivro = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); switch (opcaoLivro) { case 1: Console.WriteLine(); CadastrarLivro(); break; case 2: Console.WriteLine(); CadastrarLivro(); Console.Write("Digite cancelar, para voltar ao menu de Livro ou aperte enter adicionar outro: "); string cancelar = Console.ReadLine(); while (cancelar != "cancelar") { CadastrarLivro(); Console.Write("Digite cancelar, para voltar ao menu de Livro ou aperte enter adicionar outro: "); cancelar = Console.ReadLine(); } break; case 3: Console.WriteLine(); Console.Write("Digite o codigo do Livro, ou cancelar para voltar o menu de Livro: "); int codigoLeitor = Convert.ToInt32(Console.ReadLine()); //selecionar a Livro cadastrada para atualizar var livro = livroNegocio.Selecionar(codigoLeitor); AtualizarLivro(livro); break; case 4: Console.WriteLine(); foreach (var cadaLeitor in livroNegocio.Listar()) { Console.WriteLine($"Código {cadaLeitor.Codigo} Titulo: {cadaLeitor.Titulo}"); } break; case 5: Console.WriteLine(); Console.Write("Para deletar um livro, digite o codigo dele: "); var codigoLivroRemover = Convert.ToInt32(Console.ReadLine()); if (livroNegocio.Selecionar(codigoLivroRemover) != null) { var removerLivro = livroNegocio.Selecionar(codigoLivroRemover); livroNegocio.Deletar(removerLivro); } break; default: break; } } break; case 5: var opcaoAtendente = -1; while (opcaoAtendente != 0) { Console.WriteLine(); AtendenteNegocio atendenteNegocio = new AtendenteNegocio(); Console.WriteLine("1 - Cadastrar Atendentede"); Console.WriteLine("2 - Cadastrar varios Atendentede"); Console.WriteLine("3 - Atualizar cadastro do Atendentede"); Console.WriteLine("4 - Listar Atendentede"); Console.WriteLine("5 - Deletar Atendentede"); Console.WriteLine("0 - Voltar ao menu anterior"); Console.WriteLine(); Console.Write("Escolhe uma das opções listadas acima, inserindo o numero: "); opcaoAtendente = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); switch (opcaoAtendente) { case 1: Console.WriteLine(); CadastrarAtendente(); break; case 2: Console.WriteLine(); CadastrarLivro(); Console.Write("Digite cancelar, para voltar ao menu de Atendente ou aperte enter adicionar outro: "); string cancelar = Console.ReadLine(); while (cancelar != "cancelar") { CadastrarAtendente(); Console.Write("Digite cancelar, para voltar ao menu de Atendente ou aperte enter adicionar outro: "); cancelar = Console.ReadLine(); } break; case 3: Console.WriteLine(); Console.WriteLine("Digite o codigo do atendente, ou cancelar para voltar o menu de atendente"); int codigoAtendente = Convert.ToInt32(Console.ReadLine()); //selecionar a atendente cadastrada para atualizar var atendente = atendenteNegocio.Selecionar(codigoAtendente); AtualizarAtendente(atendente); break; case 4: Console.WriteLine(); foreach (var cadaAtendente in atendenteNegocio.Listar()) { Console.WriteLine($"Código {cadaAtendente.Codigo} Nome: {cadaAtendente.Nome}"); } break; case 5: Console.WriteLine(); Console.Write("Para deletar um atendente digite o codigo dele: "); var codigoAtendenteRemover = Convert.ToInt32(Console.ReadLine()); if (atendenteNegocio.Selecionar(codigoAtendenteRemover) != null) { var removerLeitor = atendenteNegocio.Selecionar(codigoAtendenteRemover); atendenteNegocio.Deletar(removerLeitor); } break; default: break; } } break; default: //caso nenhuma seja atendida break; } }// Chave de fechamento do while de nosso menu principal Console.WriteLine("O programa terminou, aperte enter para fechar o console"); Console.ReadKey(); }//Fechamento do metodo Main