Exemplo n.º 1
0
 public void AlugarVeiculo(Veiculo veiculo)
 {
     veiculo.AlterarStatus(new Alugar());
     Console.WriteLine($"Veículo alugado com sucesso: \n{veiculo}");
 }
Exemplo n.º 2
0
 public void DevolverVeiculo(Veiculo veiculo)
 {
     veiculo.AlterarStatus(new Disponivel());
     Console.WriteLine($"O seguinte veículo foi devolvido com sucesso: \n{veiculo}");
 }
Exemplo n.º 3
0
 public void RevisarVeiculo(Veiculo veiculo)
 {
     veiculo.AlterarStatus(new Revisar());
     Console.WriteLine($"Veículo em revisão: \n{veiculo}");
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            List <Fabricante> fabricantes = new List <Fabricante>();

            fabricantes.Add(new Fabricante(100, "BMW", "Alemanha"));
            fabricantes.Add(new Fabricante(101, "Mercedes-Benz", "Alemanha"));
            fabricantes.Add(new Fabricante(102, "Porsche", "Alemanha"));

            List <Veiculo> veiculos = new List <Veiculo>();

            veiculos.Add(new Veiculo
                         (
                             200,
                             "BMW Série 1",
                             "BMW 120i Sport",
                             "2019",
                             fabricantes[0]
                         ));

            veiculos.Add(new Veiculo
                         (
                             201,
                             "BMW X5",
                             "3.0 xDrive30d Auto",
                             "2019",
                             fabricantes[0]
                         ));

            veiculos.Add(new Veiculo
                         (
                             202,
                             "GLA",
                             "1.6 Flex Fuel 200 Style DCT",
                             "2019",
                             fabricantes[1]
                         ));

            veiculos.Add(new Veiculo
                         (
                             203,
                             "Classe A",
                             "1.3 Turbo 200 Sedan Style DCT",
                             "2019",
                             fabricantes[1]
                         ));

            veiculos.Add(new Veiculo
                         (
                             204,
                             "911 Conversível",
                             "3.0 Carrera Cabriolet 18/19",
                             "2019",
                             fabricantes[2]
                         ));

            veiculos.Add(new Veiculo
                         (
                             205,
                             "Cayenne",
                             "3.0 E-Hybrid Auto 4WD 19/20",
                             "2019",
                             fabricantes[2]
                         ));

            bool quit = false;

            do
            {
                Console.Clear();
                TelaPrincipal();
                string op = Console.ReadLine();

                switch (op.ToUpper())
                {
                case "1":
                    TelaAlugarVeiculo(veiculos);
                    try
                    {
                        int     cod     = Int32.Parse(Console.ReadLine());
                        Veiculo veiculo = veiculos.Where(v =>
                                                         v.GetCodigo() == cod).FirstOrDefault();

                        if (veiculo == null)
                        {
                            throw new Exception();
                        }

                        TelaConfirmarAluguel(veiculo);
                        string resp = Console.ReadLine().ToUpper();
                        if (resp == "S")
                        {
                            veiculo.AlterarStatus(new Alugar());
                            Console.WriteLine("ALUGADO COM SUCESSO!!!");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("CÓDIGO INVÁLIDO");
                    }
                    break;

                case "2":
                    TelaDevolverVeiculo(veiculos);
                    try
                    {
                        int     cod     = Int32.Parse(Console.ReadLine());
                        Veiculo veiculo = veiculos.Where(v =>
                                                         v.GetCodigo() == cod).FirstOrDefault();

                        if (veiculo == null)
                        {
                            throw new Exception();
                        }

                        TelaConfirmarDevolucao(veiculo);
                        string resp = Console.ReadLine().ToUpper();
                        if (resp == "S")
                        {
                            veiculo.AlterarStatus(new Disponivel());
                            Console.WriteLine("DEVOLVIDO COM SUCESSO!!!");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("CÓDIGO INVÁLIDO");
                    }
                    break;

                case "3":
                    TelaRevisarVeiculo(veiculos);
                    try
                    {
                        int     cod     = Int32.Parse(Console.ReadLine());
                        Veiculo veiculo = veiculos.Where(v =>
                                                         v.GetCodigo() == cod).FirstOrDefault();

                        if (veiculo == null)
                        {
                            throw new Exception();
                        }

                        TelaConfirmarRevisao(veiculo);
                        string resp = Console.ReadLine().ToUpper();
                        if (resp == "S")
                        {
                            veiculo.AlterarStatus(new Revisar());
                            Console.WriteLine("ENVIADO PARA REVISÃO COM SUCESSO!!!");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("CÓDIGO INVÁLIDO");
                    }
                    break;

                case "4":
                    TelaTodosVeiculos(veiculos);
                    break;

                case "Q":
                    quit = true;
                    break;

                default:
                    Console.WriteLine("OPÇÃO INVÁLIDA!");
                    break;
                }

                Console.WriteLine();
                if (!quit)
                {
                    Console.WriteLine("PRECIONE QUALQUER TECLA PARA CONTINUAR...");
                }
                else
                {
                    Console.WriteLine("Bye...");
                    Thread.Sleep(1500);
                }
            } while (!quit);
        }