Esempio n. 1
0
        public void Arrendar(Cliente cliente, DateTime inicio, DateTime fin, Vehiculos vehiculo, Sucursal sucursal, List <Accesorios> accesorios)
        {
            if (cliente.licencia.Contains(vehiculo.licencia) && cliente is Persona)
            {
                int      costo    = vehiculo.costo;
                Arriendo arriendo = new Arriendo(cliente, sucursal, vehiculo, inicio, fin);
                foreach (Accesorios a in accesorios)
                {
                    arriendo.accesorios.Add(a);
                }
                sucursal.vehiculos.Remove(vehiculo);
                sucursal.arriendos.Add(arriendo);
            }

            else if (cliente is Empresa && vehiculo is MaquinariaPesada)
            {
                int      costo    = vehiculo.costo;
                Arriendo arriendo = new Arriendo(cliente, sucursal, vehiculo, inicio, fin);
                foreach (Accesorios a in accesorios)
                {
                    arriendo.accesorios.Add(a);
                }
                sucursal.vehiculos.Remove(vehiculo);
                sucursal.arriendos.Add(arriendo);
            }

            else if ((cliente is Empresa || cliente is Persona) && vehiculo is MaquinariaPesada)
            {
                Console.WriteLine("No se puede arrendar este vehiculo\n");
            }

            else
            {
                Console.WriteLine("No se puede arrendar este vehiculo.\n");
            }
        }
        static void Main(string[] args)
        {
            bool menuGeneral = true;

            while (menuGeneral == true)
            {
                //Para que hayan datos//
                //Persona p1 = new Persona();
                //Sucursal s1 = new Sucursal();
                //Auto a1 = new Auto();

                List <Vehiculos> vehiculos  = new List <Vehiculos>();
                List <Sucursal>  sucursales = new List <Sucursal>();
                List <Cliente>   clientes   = new List <Cliente>();
                Console.WriteLine("Si en cualquier momento deseas volver al menu principal solo ingresa la opcion 0");
MENU:
                int opcion = 0;
                Console.WriteLine("\nBienvenido\nQue desea realizar?\n 1.-Crear Datos\n 2.-Hacer un arriendo\n 5.-Recibir Vehiculo\n 4.-Salir ");
                opcion = Convert.ToInt32(Console.ReadLine());
                try
                {
                    if (opcion < -1 || opcion > 4)
                    {
                        throw new DivideByZeroException();
                    }
                }
                catch
                {
                    Console.BackgroundColor = ConsoleColor.Yellow;
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\nElija una opción válida entre 1 y 4\n");
                    Console.Beep(); Console.Beep(); Console.ResetColor();
                    continue;
                }
                if (opcion == 1)
                {
                    Console.WriteLine("\nQue desea crear?\n 1.-Vehiculo\n 2.-Sucursal\n");
                    opcion = Convert.ToInt32(Console.ReadLine());
                    if (opcion == 0)
                    {
                        goto MENU;
                    }
                    if (opcion == 1)
                    {
                        Console.WriteLine("\nQue tipo de vehiculo desea crear?\n 1.-Bus\n 2.-Auto\n 3.-Acuatico\n 4.-Camion\n 5.-Maquinaria Pesada\n 6-Moto\n");
                        opcion = Convert.ToInt32(Console.ReadLine());
                        try
                        {
                            if (opcion < -1 || opcion > 6)
                            {
                                throw new DivideByZeroException();
                            }
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("\nElija una opción válida entre 1 y 4\n");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                            continue;
                        }
                        if (opcion == 0)
                        {
                            goto MENU;
                        }
                        else if (opcion == 1)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { Bus b1 = new Bus(patente, costo, ano, licencia); vehiculos.Add(b1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                        else if (opcion == 2)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { Auto a1 = new Auto(patente, costo, ano, licencia); vehiculos.Add(a1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                        else if (opcion == 3)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { Acuatico a1 = new Acuatico(patente, costo, ano, licencia); vehiculos.Add(a1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                        else if (opcion == 4)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { Camion c1 = new Camion(patente, costo, ano, licencia); vehiculos.Add(c1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                        else if (opcion == 5)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { MaquinariaPesada mp1 = new MaquinariaPesada(patente, costo, ano, licencia); vehiculos.Add(mp1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                        else if (opcion == 6)
                        {
                            Console.WriteLine("Ingrese la patente");
                            string patente = Console.ReadLine();
                            Console.WriteLine("Ingrese el costo");
                            int costo = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el anio");
                            int ano = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Ingrese el tipo de licencia requerida");
                            string licencia = Console.ReadLine();
                            try { Moto m1 = new Moto(patente, costo, ano, licencia); vehiculos.Add(m1); Console.Beep(); Console.WriteLine("Vehiculo creado con exito"); }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Yellow;
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Se han ingresado mal los valores");
                                Console.Beep(); Console.Beep(); Console.ResetColor();
                            }
                        }
                    }
                    else if (opcion == 2)
                    {
                        Console.WriteLine("Ingrese el nombre de la sucursal");
                        string nombre = Console.ReadLine();
                        Console.WriteLine("Ingrese la direccion de la sucursal");
                        string   ubicacion     = Console.ReadLine();
                        Sucursal sucursalNueva = new Sucursal(nombre, ubicacion);
                        Console.WriteLine("Desea agregar vehiculos?\n 1.- Si\n 2.- No");
                        opcion = Convert.ToInt32(Console.ReadLine());
                        try
                        {
                            if (opcion < -1 || opcion > 2)
                            {
                                throw new DivideByZeroException();
                            }
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("\nElija una opción válida entre 1 y 2\n");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                            continue;
                        }
                        if (opcion == 0)
                        {
                            goto MENU;
                        }
                        if (opcion == 1)
                        {
                            Console.WriteLine("Cuantos desea agregar?");
                            int cantidadDeVehiculos = Convert.ToInt32(Console.ReadLine());
                            while (cantidadDeVehiculos > 0)
                            {
                                Console.WriteLine("Ingrese la patente del automovil");
                                string patente = Console.ReadLine();
                                try { Vehiculos vehiculo = vehiculos.First(ve => ve.patente == patente); sucursalNueva.vehiculos.Add(vehiculo); Console.Beep(); Console.WriteLine("Vehiculo agregado con exito"); cantidadDeVehiculos--; }
                                catch
                                {
                                    Console.BackgroundColor = ConsoleColor.Yellow;
                                    Console.ForegroundColor = ConsoleColor.Red;
                                    Console.WriteLine("Ingrese una patente existente");
                                    Console.Beep(); Console.Beep(); Console.ResetColor();
                                }
                            }
                        }
                        if (opcion == 2)
                        {
                            continue;
                        }
                    }
                }
                else if (opcion == 2)
                {
                    Console.WriteLine("Ingrese la sucursal");
                    string sucursal = Console.ReadLine();
                    try
                    {
                        Sucursal S = sucursales.First(ve => ve.nombre == sucursal);
                        Console.WriteLine(S.vehiculos);
                        Console.WriteLine("Ingrese la patente del automovil");
                        string patente = Console.ReadLine();
                        Console.WriteLine("Ingrese el nombre del cliente");
                        string nombre = Console.ReadLine();
                        Console.WriteLine("Ingrese la fecha de termino");
                        DateTime fechaTermino = Convert.ToDateTime(Console.ReadLine());
                        Console.WriteLine("Ingrese la fecha de inicio");
                        DateTime fechaInicio = Convert.ToDateTime(Console.ReadLine());
                        Console.WriteLine("Ingrese la cantidad de accesorios que quiere");
                        int numeroA = Convert.ToInt32(Console.ReadLine());
                        List <Accesorios> accesoriosArriendo = new List <Accesorios>();
                        while (numeroA > 0)
                        {
                            Console.WriteLine("Ingrese el accesorio"); string accesorioA = Console.ReadLine(); //accesoriosArriendo.Add(accesorioA);
                        }
                        try
                        {
                            Vehiculos vehiculo = vehiculos.First(ve => ve.patente == patente);
                            Cliente   cliente  = clientes.First(ve => ve.nombre == nombre);
                            Arriendo  arriendo = new Arriendo(cliente, S, vehiculo, fechaInicio, fechaTermino);
                            S.arriendos.Add(arriendo);
                            S.vehiculos.Remove(vehiculo);
                            Console.Beep(); Console.WriteLine("Vehiculo arrendado con exito");
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Error al arrendar el vehiculo");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                        }
                    }
                    catch
                    {
                        Console.BackgroundColor = ConsoleColor.Yellow;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Ingrese una sucursal existente");
                        Console.Beep(); Console.Beep(); Console.ResetColor();
                    }
                }
                else if (opcion == 3)
                {
                    Console.WriteLine("Ingrese la sucursal");
                    string sucursal = Console.ReadLine();
                    try
                    {
                        Sucursal S = sucursales.First(ve => ve.nombre == sucursal);
                        Console.WriteLine(S.vehiculos);
                        Console.WriteLine("Ingrese la patente del automovil");
                        string patente = Console.ReadLine();
                        try
                        {
                            Vehiculos vehiculo = vehiculos.First(ve => ve.patente == patente);
                            Arriendo  arriendo = S.arriendos.First(arr => arr.vehiculo == vehiculo);
                            S.arriendos.Remove(arriendo);
                            S.vehiculos.Add(vehiculo);
                            Console.Beep(); Console.WriteLine("Vehiculo quitado con exito");
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Error al quitar el vehiculo");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                        }
                    }
                    catch
                    {
                        Console.BackgroundColor = ConsoleColor.Yellow;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Ingrese una sucursal existente");
                        Console.Beep(); Console.Beep(); Console.ResetColor();
                    }
                }
                else if (opcion == 4)
                {
                    menuGeneral = false;
                }
            }
        }