static void Main(string[] args) { ArquivoController controller = new ArquivoController(); controller.GerarArquivoXML(); controller.GerarArquivoCSV(); }
static void Main() { // VARIAVEIS byte op; // LSITAS List <Cliente> listaCliente = new List <Cliente>(); List <Livro> listaLivro = new List <Livro>(); List <Emprestimo> listaEmprestimo = new List <Emprestimo>(); // LEITURA DE ARQUIVOS ArquivoController.Leitura(listaCliente); ArquivoController.Leitura(listaLivro); ArquivoController.Leitura(listaEmprestimo); // LAÇO PROGRAMA do { op = MenuPrincipal(); // CHAMA MENU RETORNA OPÇÃO Console.Clear(); // LIMPA TELA CONSOLE switch (op) { case 1: // CADASTRO DE CLIENTE LerCliente(listaCliente); // CADASTRA CLIENTE ADICIONA A LISTA E ARQUIVO break; case 2: // CADASTRO DE LIVRO LerLivro(listaLivro); // CADASTRA LIVRO ADICIONA A LISTA E ARQUIVO break; case 3: // EMPRESTIMO LerEmprestimo(listaCliente, listaLivro, listaEmprestimo); // CADASTRA TODOS CAMPOS DE EMRPESTIMO break; case 4: // DEVOLUÇÃO LerDevolucao(listaEmprestimo); break; case 5: // RELATORIO DE EMPRESTIMOS E DEVOLUÇÕES Relatorio(listaCliente, listaLivro, listaEmprestimo); // FUNÇÃO RELATÓRIO break; } } while (op != 0); }
/// <summary> /// Método da VIEW para chamada da controller para gerar arquivos XML e CSV com dados dos filmes /// </summary> private static void GerarArquivosFilmes() { //Instancia a controller de arquivo ArquivoController controller = new ArquivoController(); //Recupera o arquivo XML controller.GerarArquivoXML(); //Recupera o arquivo CSV controller.GerarArquivoCSV(); }
static void LerCliente(List <Cliente> lista) // FUNÇÃO ESCRITA DE CLIENTE { // VARIAVEIS string cpf, nome, telefone, logradouro, bairro, cidade, estado, cep; long idCliente; bool err; DateTime dataNascimento = DateTime.Now; Endereco endereco; Cliente cliente; CultureInfo CultureBr = new CultureInfo(name: "pt-BR"); // LOCALIZAÇÃO Console.WriteLine("\n>>> CADASTRO CLIENTE<<<\n"); do { // LAÇO TRATAMENTO DE CPF (REPETIDO E VALIDO) Console.Write("CPF do Cliente: "); cpf = Console.ReadLine(); if (ClienteController.CpfExistente(lista, cpf)) // VERIFICA SE JÁ EXISTE NA LISTA { Console.WriteLine("CPF já cadastrado.\nPrecione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); // LIMPA TELA return; } } while (cpf == ""); do { //LAÇO TRATA NOME VAZIO Console.Write("Nome do Cliente: "); nome = Console.ReadLine(); } while (nome == ""); do { err = false; // ARMAZENA DATA DE NASCIMENTO try { Console.Write("Data de Nascimento do Cliente (dd/mm/yyyy): "); dataNascimento = DateTime.ParseExact(Console.ReadLine(), "d", CultureBr); if ((Convert.ToDateTime(dataNascimento)) > (Convert.ToDateTime(DateTime.Now))) { Console.WriteLine("Data deve ser menor que a data atual"); err = true; } } catch (Exception) { Console.WriteLine("Informe a data (dd/mm/yyyy)"); err = true; } } while (err); do { // LAÇO TRATA TELEFONE VAZIO Console.Write("Telefone do Cliente: "); telefone = Console.ReadLine(); } while (telefone == ""); do { // LAÇO TRATA LOGRADOURO VAZIO Console.Write("Logradouro do Cliente e Número: "); logradouro = Console.ReadLine(); } while (logradouro == ""); do { // LAÇO TRATA BAIRRO VAZIO Console.Write("Bairro do Cliente: "); bairro = Console.ReadLine(); } while (bairro == ""); do { // LAÇO TRATA CIDADE VAZIA Console.Write("Cidade do Cliente: "); cidade = Console.ReadLine(); } while (cidade == ""); do { // LAÇO TRATA ESTADO VAZIO Console.Write("Estado do Cliente: "); estado = Console.ReadLine(); } while (estado == ""); do { // LAÇO TRATA CEP VAZIO Console.Write("CEP do Cliente: "); cep = Console.ReadLine(); } while (cep == ""); // ESTANCIA ENDEREÇO endereco = new Endereco() { Logradouro = logradouro, Bairro = bairro, Cidade = cidade, Estado = estado, Cep = cep }; if (lista.Count == 0) { idCliente = 0; } else { idCliente = lista[lista.Count - 1].IdCliente + 1; } // RETORNA CLIENTE ESTANCIADO cliente = new Cliente() { IdCliente = idCliente, Cpf = cpf, Nome = nome, DataNascimento = dataNascimento, Telefone = telefone, endereco = endereco }; // ADICIONA CLIENTE NA LISTA CLIENTE lista.Add(cliente); // ESCREVE A LISTA NO ARQUIVO ArquivoController.Escrita(lista); Console.Clear();// LIMPA TELA Console.WriteLine("\n>>>CLIENTE CADASTRADO<<<\nPrecione qualquer tecla para continuar..."); Console.ReadLine(); Console.Clear(); }
static void LerDevolucao(List <Emprestimo> listaEmprestimo) { // VARIAVEIS string numeroTombo; Emprestimo emprestimo; const double multa = 0.10; int diaAtraso; double valorAtraso; // LOCALIZAÇÃO Console.WriteLine("\n>>>CADASTRO DEVOLUÇÃO<<<\n"); do { // LAÇO TRATA NUMERO TOMBO VAZIO Console.Write("Número do Tombo do Livro: "); numeroTombo = Console.ReadLine(); } while (numeroTombo == ""); // RETORNA OBJETO EMPRESTIMO COM STATUS EMPRESTADO O LIVRO INFORMADO PELO NUMERO TOMBO emprestimo = EmprestimoController.NumeroTomboEmprestado(listaEmprestimo, long.Parse(numeroTombo)); // CASO NÃO ENCONTRAR LIVRO OU O LIVRO ESTA COMO "DEVOLVIDO" if (emprestimo == null) { Console.WriteLine("Livro não encontrado para devolução.\nPrecione qualquer tecla para voltar ao Menu Principal..."); Console.ReadLine(); Console.Clear(); return; } // CALCULA DIAS DE ATRASO diaAtraso = (int)DateTime.Now.Subtract(emprestimo.DataDevolucao).TotalDays; if (diaAtraso <= 0) { Console.WriteLine("Entregue no Prazo."); } else { valorAtraso = diaAtraso * multa; // CALCULA MULTA 0,10 POR DIA Console.WriteLine("Multa de R$ " + valorAtraso); } Console.WriteLine("Precione qualquer tecla para continuar..."); Console.ReadLine(); // ATUALIZA SITUAÇÃO DO EMRPESTIMO emprestimo.StatusEmprestimo = 2; emprestimo.DataDevolucao = DateTime.Now; // ATUALIZA A LISTA ArquivoController.Escrita(listaEmprestimo); // LIMPA TELA Console.Clear(); Console.WriteLine("\n>>>DEVOLUÇÃO CADASTRADA<<<\nPrecione qualquer tecla para continuar..."); Console.ReadLine(); Console.Clear(); }
static void LerEmprestimo(List <Cliente> listaCliente, List <Livro> listaLivro, List <Emprestimo> listaEmprestimo) { // VARIAIVES string cpf, numeroTombo, op; long idCliente; bool err; DateTime dataDevolucao = DateTime.Now; Emprestimo emprestimo; CultureInfo CultureBr = new CultureInfo(name: "pt-BR"); // LOCALIZAÇÃO Console.WriteLine("\n>>>CADASTRO EMPRESTIMO<<<\n"); do { // LAÇO TRATA NÚMERO TOMBO DE LIVRO err = false; Console.Write("Informe o Número Tombo do Livro: "); numeroTombo = Console.ReadLine(); // SE EXISTIR LIVRO NA LISTA DE EMPRESTADO E ESTAR COM STATUS EMPRESTADO RETORNA O OBJETO emprestimo = EmprestimoController.NumeroTomboEmprestado(listaEmprestimo, long.Parse(numeroTombo)); // CASO NÃO EXISTIR NÚMERO TOMBO DE LIVRO OU ELE ESTAR EMPRESTADO if (!LivroController.NumeroTomboExiste(listaLivro, long.Parse(numeroTombo)) || emprestimo != null) { // CAMINHOS PARA USUARIO ESCOLHER Console.WriteLine("Livro indisponível para empréstimo.\n1 - Digitar Número Tombo novamente" + "\n2 - Cadastrar Livro\n3 - Voltar ao Menu Principal "); op = Console.ReadLine(); switch (op) // SWITCH DE OPÇÕES PARA SABER QUAL CAMINHO USUARIO ESCOLHEU { case "2": // CADASTRO CLIENTE Console.Clear(); // LIMPA TELA LerLivro(listaLivro); err = true; // INFORMAR O CPF NOVAMENTE POREM COM CPF JÁ CADASTRADO Console.WriteLine("\n>>>CADASTRO EMPRESTIMO<<<\n"); // LOCALIZAÇÃO break; case "3": // VOLTAR MENU PRINCIPAL Console.Clear(); // LIMPA TELA return; default: // DIGITAR CPF NOVAMENTE OU OUTRO NÚMERO/LETRA NÃO INFORMADO NO MENU err = true; break; } } } while (err); do { err = false; // INFORMA CPF Console.Write("Informe o CPF do Cliente: "); cpf = Console.ReadLine(); // RETORNA ID DE CLIENTE QUE TEM ESSE CPF idCliente = ClienteController.RetornaCLienteCpf(listaCliente, cpf); // CASO CPF NÃO EXISTA if (idCliente == -1) { // CAMINHOS CASO CPF NÃO RECONHECIDO Console.WriteLine("Cliente não cadastrado.\n1 - Digitar CPF novamente" + "\n2 - Cadastrar Cliente\n3 - Voltar ao Menu Principal "); op = Console.ReadLine(); switch (op) // SWITCH DE OPÇÕES PARA SABER QUAL CAMINHO USUARIO ESCOLHEU { case "2": // CADASTRO CLIENTE Console.Clear(); // LIMPA TELA LerCliente(listaCliente); err = true; // INFORMAR O CPF NOVAMENTE POREM COM CPF JÁ CADASTRADO Console.WriteLine("\n>>>CADASTRO EMPRESTIMO<<<\n"); // LOCALIZAÇÃO Console.WriteLine("Informe o Número Tombo do Livro: " + numeroTombo); // LOCALIZAÇÃO break; case "3": // VOLTAR MENU PRINCIPAL Console.Clear(); // LIMPA TELA return; default: // DIGITAR CPF NOVAMENTE OU OUTRO NÚMERO/LETRA NÃO INFORMADO NO MENU err = true; break; } } } while (err); // ARMAZENA DATA DE DEVOLUÇÃO do { err = false; try { Console.Write("Data de Devolução (dd/mm/yyyy): "); dataDevolucao = DateTime.ParseExact(Console.ReadLine(), "d", CultureBr); if ((Convert.ToDateTime(dataDevolucao)) < (Convert.ToDateTime(DateTime.Now))) { Console.WriteLine("Informe uma data posterior a data atual"); err = true; } } catch (Exception) { Console.WriteLine("Informe a data (dd/mm/yyyy)"); err = true; } } while (err); // ESTANCIA EMPRESTIMO ESTANCIADO emprestimo = new Emprestimo() { IdCliente = idCliente, NumeroTombo = long.Parse(numeroTombo), DataEmprestimo = DateTime.Now, DataDevolucao = dataDevolucao, StatusEmprestimo = 1 }; // ADICIONA O EMPRESTIMO NA LISTA EMPRESTIMO listaEmprestimo.Add(emprestimo); // ADICIONA LISTA NO ARQUIVO ArquivoController.Escrita(listaEmprestimo); Console.Clear(); // LIMPA TELA Console.WriteLine("\n>>>EMPRESTIMO CADASTRADO<<<\nPrecione qualquer tecla para continuar..."); Console.ReadLine(); Console.Clear(); }
static void LerLivro(List <Livro> lista) { // VARIAVEIS string isbn, titulo, genero, autor; bool err; long numeroTombo; DateTime dataPublicacao = DateTime.Now; Livro livro; CultureInfo CultureBr = new CultureInfo(name: "pt-BR"); // LOCALIZAÇÃO Console.WriteLine("\n>>>CADASTRO LIVRO<<<\n"); do { // LAÇO TRATA ISBN REPETIDO Console.Write("ISBN do Livro: "); isbn = Console.ReadLine(); if (LivroController.IsbnExiste(lista, isbn)) // CASI TENHA ISBN REPETIDO NA LISTA { Console.WriteLine("Livro já cadastrado.\nPrecione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); // LIMPA TELA return; } } while (isbn == ""); do { // LAÇO TRATA TITULO VAZIO Console.Write("Titulo do Livro: "); titulo = Console.ReadLine(); } while (titulo == ""); do { // LAÇO TRATA GENERO VAZIO Console.Write("Gênero do Livro: "); genero = Console.ReadLine(); } while (genero == ""); do { // LAÇO TRATA DATA POSTERIOR A DATA ATUAL err = false; try { Console.Write("Data de Publicacao do Livro (dd/mm/yyyy): "); dataPublicacao = DateTime.ParseExact(Console.ReadLine(), "d", CultureBr); if ((Convert.ToDateTime(dataPublicacao)) > (Convert.ToDateTime(DateTime.Now))) { Console.WriteLine("Informe uma data anterior a data de hoje"); err = true; } } catch (Exception) { Console.WriteLine("Informe a data (dd/mm/yyyy)"); err = true; } } while (err); do { // LAÇO TRATA AUTOR VAZIO Console.Write("Autor do Livro: "); autor = Console.ReadLine(); } while (autor == ""); if (lista.Count == 0) { numeroTombo = 0; } else { numeroTombo = lista[lista.Count - 1].NumeroTombo + 1; } // IMPRIMI NÚMERO DO TOMBO PARA BIBLIOTECÁRIO ADICIONAR AO LIVRO FÍSICO Console.WriteLine("\n>>>Número Tombo do Livro: " + numeroTombo + "<<<\n"); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); Console.Clear(); // LIMPA TELA // RETORNA LIVRO ESTANCIADO livro = new Livro() { NumeroTombo = numeroTombo, Isbn = isbn, Titulo = titulo, Genero = genero, DataPublicacao = dataPublicacao, Autor = autor }; // ADICIONA LIVRO NA LISTA LIVRO lista.Add(livro); // ESCREVE A LISTA NO ARQUIVO ArquivoController.Escrita(lista); Console.Clear(); // LIMPA TELA Console.WriteLine("\n>>>LIVRO CADASTRADO<<<\nPrecione qualquer tecla para continuar..."); Console.ReadLine(); Console.Clear(); }