Example #1
0
        static void Main(string[] args)
        {
            List <Reserva> listReserva  = new List <Reserva>();
            List <Cliente> listClientes = new List <Cliente>();
            int            opcao        = 0;

            while (opcao != 6)
            {
                Console.Clear();
                Console.WriteLine("Bem vindo ao sistema do nosso Restaurante\n");
                Console.WriteLine("1 - Cadastrar Cliente");
                Console.WriteLine("2 - Editar Cliente");
                Console.WriteLine("3 - Excluir Cliente");
                Console.WriteLine("4 - Nova Reserva");
                Console.WriteLine("5 - Lista de Reservas");
                Console.WriteLine("6 - Sair do Programa\n");
                Console.Write("Por favor, selecione uma opção: ");
                opcao = Convert.ToInt32(Console.ReadLine());
                Console.Clear();
                switch (opcao)
                {
                case 1:
                    Cliente cliente = new Cliente();
                    Console.Write("Por favor, insira o nome do cliente: ");
                    cliente.nome = Console.ReadLine();
                    Console.Clear();
                    Console.Write("Por favor, insira o CPF do cliente: ");
                    cliente.CPF = Console.ReadLine();
                    Console.Clear();
                    var c = listClientes.Find(item => item.CPF == cliente.CPF);
                    if (c != null)
                    {
                        Console.WriteLine("O CPF já está cadastrado.");
                        Console.ReadKey();
                        continue;
                    }
                    Console.Write("Por favor, insira o Telefone do cliente: ");
                    cliente.telefone = Console.ReadLine();
                    Console.Clear();
                    if (listClientes.Count < 1)
                    {
                        cliente.codCliente = 1;
                    }
                    else
                    {
                        cliente.codCliente = listClientes.Last().codCliente + 1;
                    }
                    listClientes.Add(cliente);
                    continue;

                case 2:
                    foreach (var item in listClientes)
                    {
                        Console.WriteLine($"| Código Cliente: {item.codCliente} | Nome: {item.nome} | CPF: {item.CPF} | Telefone: {item.telefone} |");
                        Console.WriteLine("--------------------------------------------------------------------------------");
                    }
                    Console.Write("\nPor favor, selecione o código do cliente que deseja editar: ");
                    int cod = Convert.ToInt32(Console.ReadLine());
                    Console.Clear();
                    var alteraCliente = listClientes.Find(item => item.codCliente == cod);
                    if (alteraCliente == null)
                    {
                        Console.WriteLine("Código inválido");
                        Console.ReadKey();
                        Console.Clear();
                        continue;
                    }
                    int decisao = 0;
                    while (decisao != 2)
                    {
                        Console.Clear();
                        Console.WriteLine("1 - Nome");
                        Console.WriteLine("2 - CPF");
                        Console.WriteLine("3 - Telefone");
                        Console.Write("Selecione a opção que deseja alterar: ");
                        cod = Convert.ToInt32(Console.ReadLine());
                        if (cod == 1)
                        {
                            Console.Write("Insira o novo nome: ");
                            alteraCliente.nome = Console.ReadLine();
                            Console.Clear();
                            Console.Write("Deseja alterar mais alguma coisa? '1 = Sim, 2 = Não': ");
                            decisao = Convert.ToInt32(Console.ReadLine());
                            continue;
                        }

                        if (cod == 2)
                        {
                            Console.Write("Insira o novo CPF: ");
                            alteraCliente.CPF = Console.ReadLine();
                            Console.Clear();
                            Console.Write("Deseja alterar mais alguma coisa? '1 = Sim, 2 = Não': ");
                            decisao = Convert.ToInt32(Console.ReadLine());
                            continue;
                        }

                        if (cod == 3)
                        {
                            Console.Write("Insira o novo Telefone: ");
                            alteraCliente.telefone = Console.ReadLine();
                            Console.Clear();
                            Console.Write("Deseja alterar mais alguma coisa? '1 = Sim, 2 = Não': ");
                            decisao = Convert.ToInt32(Console.ReadLine());
                            continue;
                        }

                        if (cod > 3 || cod < 1)
                        {
                            Console.WriteLine("Código inválido.");
                            Console.ReadKey();
                            Console.Clear();
                        }
                    }
                    continue;

                case 3:
                    foreach (var item in listClientes)
                    {
                        Console.WriteLine($"| Código Cliente: {item.codCliente} | Nome: {item.nome} | CPF: {item.CPF} | Telefone: {item.telefone} |");
                        Console.WriteLine("--------------------------------------------------------------------------------");
                    }
                    Console.Write("\nPor favor, selecione o código do cliente que deseja editar: ");
                    cod = Convert.ToInt32(Console.ReadLine());
                    Console.Clear();
                    var removeCliente = listClientes.Find(item => item.codCliente == cod);
                    if (removeCliente == null)
                    {
                        Console.WriteLine("Código inválido");
                        Console.ReadKey();
                        Console.Clear();
                        continue;
                    }
                    listClientes.Remove(removeCliente);
                    continue;

                case 4:
                    Reserva reserva = new Reserva();
                    Console.Write("Por favor, informe o CPF do reservista: ");
                    String cpf = Console.ReadLine();
                    Console.Clear();
                    var confereCPF = listClientes.Find(item => item.CPF == cpf);
                    if (confereCPF == null)
                    {
                        Console.WriteLine("CPF inválido");
                        Console.ReadKey();
                        continue;
                    }
                    reserva.CPFReservista = cpf;
                    Console.Clear();
                    Console.Write("Insira o número de pessoas que farão parte dessa reserva: ");
                    reserva.nPessoas = Convert.ToInt32(Console.ReadLine());
                    Console.Clear();
                    if (reserva.nPessoas > 8)
                    {
                        Console.WriteLine("A reserva não pode ser para mais de 8 pessoas.");
                        Console.ReadKey();
                        continue;
                    }
                    Console.Write("Por favor, insira o número da mesa que deseja reservar (1 a 6): ");
                    int mesa = Convert.ToInt16(Console.ReadLine());
                    reserva.mesa.Add(mesa);
                    if (reserva.nPessoas > 4 && reserva.nPessoas <= 8)
                    {
                        Console.Clear();
                        Console.Write($"Reserva para mais de 4 pessoas, por favor, selecione mais uma mesa (Mesa já selecionada: {reserva.mesa.First()}): ");
                        mesa = Convert.ToInt16(Console.ReadLine());
                        reserva.mesa.Add(mesa);
                    }
                    Console.Clear();
                    Console.Write("Insira a data e hora da reserva (Formato esperado: AAAA-MM-DD HH:mm:ss): ");
                    DateTime date = DateTime.Parse(Console.ReadLine());
                    if (date.DayOfYear < DateTime.Now.DayOfYear + 3)
                    {
                        Console.Clear();
                        Console.WriteLine("A data da reserva não pode ser menor que 3 dias a partir de hoje.");
                        Console.ReadKey();
                        continue;
                    }
                    reserva.dataReserva = date;
                    if (listReserva.Count < 1)
                    {
                        reserva.idReserva = 1;
                    }
                    else
                    {
                        reserva.idReserva = listReserva.Last().idReserva + 1;
                    }
                    listReserva.Add(reserva);
                    continue;

                case 5:
                    foreach (var item in listReserva)
                    {
                        var cli = listClientes.Find(i => i.CPF == item.CPFReservista);
                        Console.Write($"| Nome do reservista: {cli.nome} ");
                        Console.Write($"| CPF Reservista: {item.CPFReservista} | Data e hora da Reserva: {item.dataReserva.ToString("dd/MM/yyyy HH:mm-ss")} | Número de pessoas: {item.nPessoas}|\n| Mesa(s) reservada(s): ");
                        foreach (var i in item.mesa)
                        {
                            Console.Write($"{i} ");
                        }
                        Console.WriteLine("|\n------------------------------------------------------------------------------------------------------------------------");
                    }
                    Console.ReadKey();
                    continue;

                case 6:
                    break;

                default:
                    Console.WriteLine("Esta não é uma opção válida");
                    Console.ReadKey();
                    Console.Clear();
                    continue;
                }
                Console.Clear();
                Console.WriteLine("Obrigado por utilizar nossos serviços.");
                Console.ReadKey();
            }
        }
 public void realizaReserva(String CPF, String Telefone, DateTime Data, int mesa, int NPessoas, int metodoPagamento)
 {
     Reserva reserva = new Reserva();
 }