コード例 #1
0
ファイル: Program.cs プロジェクト: Agostinh0/Locadora-C-Sharp
        static void Menu()
        {
            Console.Clear();

            Console.WriteLine("\t------------LOCADORA DO TRABSON------------");

            Console.WriteLine("(1) Adicionar cliente\n(2) Buscar cliente\n(3) Editar cliente\n(4) Remover cliente");
            Console.WriteLine("(5) Adicionar filme\n(6) Buscar filme\n(7) Editar filme\n(8) Remover filme");
            Console.WriteLine("(9) Registrar aluguel\n(10) Registrar devolução\n(11) Sair");

            Console.WriteLine("Escolha uma operação:");
            int operacao = int.Parse(Console.ReadLine());

            do
            {
                switch (operacao)
                {
                case 1:

                    Console.Clear();


                    Console.WriteLine("Insira o nome do cliente: ");
                    string nome = Console.ReadLine();

                    Console.WriteLine("Insira o CPF do cliente: ");
                    string cpf = Console.ReadLine();

                    Console.WriteLine("\nAgora você irá inserir os dados do endereço do cliente: ");
                    Console.WriteLine("Logradouro: ");
                    string logradouro = Console.ReadLine();

                    Console.WriteLine("Número: ");
                    int numero = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Complemento (se não houver, apenas pressione ENTER): ");
                    string complemento = Console.ReadLine();

                    Console.WriteLine("CEP: ");
                    string cep = Console.ReadLine();

                    Console.WriteLine("Bairro: ");
                    string bairro = Console.ReadLine();

                    Console.WriteLine("Cidade: ");
                    string cidade = Console.ReadLine();

                    Endereco endereco = new Endereco(logradouro, numero, complemento, cep, bairro, cidade);

                    int status = 0;
                    while (status != 1 && status != 2)
                    {
                        Console.WriteLine("O cliente será PREMIUM? 1 para SIM, 2 para NÃO: ");
                        status = Convert.ToInt32(Console.ReadLine());

                        Boolean premium;

                        if (status == 1)
                        {
                            premium = true;

                            Cliente cliente = new Cliente(nome, cpf, endereco, premium);
                            Fachada.Instance.SalvarCliente(cliente);

                            Console.Clear();
                            Console.WriteLine("Cliente adicionado com sucesso!\n");
                            Console.WriteLine(cliente.ToString());

                            Console.ReadLine();
                        }
                        else if (status == 2)
                        {
                            premium = false;

                            Cliente cliente = new Cliente(nome, cpf, endereco, premium);
                            Fachada.Instance.SalvarCliente(cliente);

                            Console.Clear();
                            Console.WriteLine("Cliente adicionado com sucesso!\n");
                            Console.WriteLine(cliente.ToString());

                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("Operação Inválida!");
                        }
                    }

                    Menu();

                    break;

                case 2:

                    Console.Clear();

                    Console.WriteLine("Insira o CPF do cliente: ");
                    string busca = Console.ReadLine();

                    Console.Clear();
                    Console.WriteLine(Fachada.Instance.BuscarCliente(busca));

                    Console.ReadLine();

                    Menu(); break;

                case 3:

                    Console.Clear();

                    Console.WriteLine("Insira o CPF do cliente: ");
                    string pesquisa = Console.ReadLine();

                    Console.Clear();
                    Cliente cl = Fachada.Instance.BuscarCliente(pesquisa);
                    Console.WriteLine(cl.ToString());

                    Console.WriteLine("Insira o novo nome do cliente: ");
                    string novoNome = Console.ReadLine();

                    Console.WriteLine("\nAgora você irá inserir os novos dados do endereço do cliente: ");
                    Console.WriteLine("Logradouro: ");
                    string novoLogradouro = Console.ReadLine();

                    Console.WriteLine("Número: ");
                    int novoNumero = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Complemento (se não houver, apenas pressione ENTER): ");
                    string novoComplemento = Console.ReadLine();

                    Console.WriteLine("CEP: ");
                    string novoCep = Console.ReadLine();

                    Console.WriteLine("Bairro: ");
                    string novoBairro = Console.ReadLine();

                    Console.WriteLine("Cidade: ");
                    string novaCidade = Console.ReadLine();

                    Endereco novoEndereco = new Endereco(novoLogradouro, novoNumero, novoComplemento, novoCep, novoBairro, novaCidade);

                    int novoStatus = 0;
                    while (novoStatus != 1 && novoStatus != 2)
                    {
                        Console.WriteLine("O cliente será PREMIUM? 1 para SIM, 2 para NÃO: ");
                        novoStatus = Convert.ToInt32(Console.ReadLine());

                        Boolean premium;

                        if (novoStatus == 1)
                        {
                            premium = true;

                            Fachada.Instance.EditarCliente(cl, novoNome, novoEndereco, premium);

                            Console.Clear();
                            Console.WriteLine("Cliente alterado com sucesso!\n");
                            Console.WriteLine(cl.ToString());

                            Console.ReadLine();
                        }
                        else if (novoStatus == 2)
                        {
                            premium = false;

                            Fachada.Instance.EditarCliente(cl, novoNome, novoEndereco, premium);

                            Console.Clear();
                            Console.WriteLine("Cliente alterado com sucesso!\n");
                            Console.WriteLine(cl.ToString());

                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("Operação Inválida!");
                        }
                    }

                    Menu();


                    break;

                case 4:
                    Console.Clear();

                    Console.WriteLine("Insira o CPF do cliente: ");
                    string search = Console.ReadLine();

                    Console.Clear();
                    Cliente client = Fachada.Instance.BuscarCliente(search);
                    Console.WriteLine(client.ToString());

                    int confirmacao = 0;

                    while (confirmacao != 1 && confirmacao != 2)
                    {
                        Console.WriteLine("Deseja remover o cliente? 1 para SIM, 2 para NÃO");
                        confirmacao = Convert.ToInt32(Console.ReadLine());


                        if (confirmacao == 1)
                        {
                            if (Fachada.Instance.RemoverCliente(client))
                            {
                                Console.WriteLine("Cliente removido com sucesso!");
                                Console.ReadLine();
                            }
                            else
                            {
                                Console.WriteLine("Não foi possível remover o cliente.\nVerifique se ele possui filmes alugados");
                                Console.ReadLine();
                            }
                        }
                        else if (confirmacao == 2)
                        {
                            Console.WriteLine("Operação cancelada.");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("Opção inválida!");
                        }
                    }

                    Menu();

                    break;

                case 5:

                    Console.Clear();


                    Console.WriteLine("Insira o título do filme: ");
                    string titulo = Console.ReadLine();

                    Console.WriteLine("Insira o diretor do filme: ");
                    string diretor = Console.ReadLine();

                    Console.WriteLine("Dia de lançamento: ");
                    int dia = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Mês de lançamento (número): ");
                    int mes = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Ano de lançamento: ");
                    int ano = Convert.ToInt32(Console.ReadLine());

                    DateTime dataLancamento = new DateTime(ano, mes, dia);

                    Console.WriteLine("Preço: ");
                    double preco = Convert.ToDouble(Console.ReadLine());

                    Console.WriteLine("Gênero (Exemplos: Ação, Aventura, Drama, etc): ");
                    string genero = Console.ReadLine();

                    Console.WriteLine("Sinopse: ");
                    string sinopse = Console.ReadLine();

                    Filme filme = new Filme(titulo, diretor, dataLancamento, preco, genero, sinopse);
                    Fachada.Instance.SalvarFilme(filme);

                    Console.Clear();
                    Console.WriteLine("Filme adicionado com sucesso!");
                    Console.WriteLine(filme.ToString());

                    Console.ReadLine();

                    Menu();

                    break;

                case 6:

                    Console.Clear();

                    Console.WriteLine("Insira o título do filme: ");
                    string buscaFilme = Console.ReadLine();

                    Console.Clear();
                    Console.WriteLine(Fachada.Instance.BuscarFilme(buscaFilme));

                    Console.ReadLine();

                    Menu();

                    break;

                case 7:

                    Console.Clear();

                    Console.WriteLine("Insira o título do filme: ");
                    string filmSearch = Console.ReadLine();

                    Console.Clear();
                    Filme f = Fachada.Instance.BuscarFilme(filmSearch);
                    Console.WriteLine(f.ToString());

                    Console.WriteLine("Insira o novo título do filme: ");
                    string novoTitulo = Console.ReadLine();

                    Console.WriteLine("Insira o novo diretor do filme: ");
                    string novoDiretor = Console.ReadLine();

                    Console.WriteLine("Novo dia de lançamento: ");
                    int novoDia = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Novo mês de lançamento (número): ");
                    int novoMes = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Novo ano de lançamento: ");
                    int novoAno = Convert.ToInt32(Console.ReadLine());

                    DateTime novaDataLancamento = new DateTime(novoAno, novoMes, novoDia);

                    Console.WriteLine("Novo preço: ");
                    double novoPreco = Convert.ToDouble(Console.ReadLine());

                    Console.WriteLine("Novo gênero (Exemplos: Ação, Aventura, Drama, etc): ");
                    string novoGenero = Console.ReadLine();

                    Console.WriteLine("Nova sinopse: ");
                    string novaSinopse = Console.ReadLine();

                    Fachada.Instance.EditarFilme(f, novoTitulo, novoDiretor, novaDataLancamento,
                                                 novoPreco, novoGenero, novaSinopse);

                    Console.Clear();

                    Console.WriteLine("Filme atualizado com sucesso!");
                    Console.WriteLine(f.ToString());
                    Console.ReadLine();

                    Menu();

                    break;

                case 8:

                    Console.Clear();

                    Console.WriteLine("Insira o título do filme: ");
                    string movieSearch = Console.ReadLine();

                    Console.Clear();
                    Filme movie = Fachada.Instance.BuscarFilme(movieSearch);
                    Console.WriteLine(movie.ToString());

                    int confirm = 0;

                    while (confirm != 1 && confirm != 2)
                    {
                        Console.WriteLine("Deseja remover o filme? 1 para SIM, 2 para NÃO");
                        confirm = Convert.ToInt32(Console.ReadLine());


                        if (confirm == 1)
                        {
                            Fachada.Instance.RemoverFilme(movie);
                            Console.WriteLine("Filme removido com sucesso!");
                            Console.ReadLine();
                        }
                        else if (confirm == 2)
                        {
                            Console.WriteLine("Operação cancelada.");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("Opção inválida!");
                        }
                    }

                    Menu();

                    break;

                case 9:

                    Console.Clear();

                    Console.WriteLine("Insira o título do filme: ");
                    string buscaFilmeAluguel = Console.ReadLine();

                    Filme film = Fachada.Instance.BuscarFilme(buscaFilmeAluguel);
                    Console.WriteLine(film.ToString());

                    Console.WriteLine("---------------------\nInsira o CPF do cliente: ");
                    string clienteCpf = Console.ReadLine();

                    Cliente fregues = Fachada.Instance.BuscarCliente(clienteCpf);
                    Console.WriteLine(fregues.ToString());

                    Console.WriteLine("---------------------\nPor quantos dias irá alugar?");
                    int dias = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("Qual a forma de pagamento?");
                    string formaPagamento = Console.ReadLine();

                    fregues.Alugar(fregues, film);
                    NotaFiscal nf = new NotaFiscal(fregues, film, dias, formaPagamento);

                    Console.Clear();
                    Console.WriteLine("Alugado!");
                    Console.WriteLine(nf.ToString());

                    Console.ReadLine();

                    Menu();

                    break;

                case 10:

                    Console.Clear();

                    Console.WriteLine("Insira o CPF do cliente: ");
                    string clientCpf = Console.ReadLine();

                    Cliente cli = Fachada.Instance.BuscarCliente(clientCpf);
                    Console.WriteLine(cli.ToString());

                    Console.WriteLine("---------------------\nInsira o nome do filme a ser devolvido");
                    string p = Console.ReadLine();

                    Filme fl = Fachada.Instance.BuscarFilme(p);
                    Console.WriteLine(fl.ToString());

                    cli.Devolver(cli, fl);

                    Console.WriteLine("Devolvido!");

                    Console.ReadLine();

                    Menu();

                    break;

                default:
                    Console.Clear();
                    Console.WriteLine("Obrigado por usar o nosso sistema!"); break;
                }
            } while (operacao != 11);
        }