/// <summary>
        /// Remueve un vehiculo del listado, si es que se encuentra
        /// </summary>
        /// <param name="concecionaria"></param>
        /// <param name="vehiculo"></param>
        /// <returns></returns>
        public static Concecionaria operator -(Concecionaria concecionaria, Vehiculo vehiculo)
        {
            Concecionaria nuevaConcecionaria = new Concecionaria(concecionaria._espacioDisponible);

            foreach (Vehiculo item in concecionaria._vehiculos)
            {
                if (item != vehiculo)
                {
                    nuevaConcecionaria._vehiculos.Add(item);
                }
            }
            return(nuevaConcecionaria);
        }
예제 #2
0
        static void Main()
        {
            Concecionaria concecionaria = new Concecionaria(5);

            Camion    c1 = new Camion(Vehiculo.EMarca.Scania, "ASD012", ConsoleColor.Black);
            Camion    c2 = new Camion(Vehiculo.EMarca.Iveco, "ASD913", ConsoleColor.Red);
            Moto      m1 = new Moto(Vehiculo.EMarca.BMW, "HJK789", ConsoleColor.White);
            Moto      m2 = new Moto(Vehiculo.EMarca.Yamaha, "IOP852", ConsoleColor.Blue);
            Automovil a1 = new Automovil(Vehiculo.EMarca.Chevrolet, "QWE968", ConsoleColor.Gray);
            Automovil a2 = new Automovil(Vehiculo.EMarca.Ford, "TYU426", ConsoleColor.DarkBlue);
            Automovil a3 = new Automovil(Vehiculo.EMarca.Scania, "IOP852", ConsoleColor.Green);

            // Agrego 6 ítems (los últimos 2 no deberían poder agregarse) y muestro
            concecionaria += c1;
            concecionaria += c2;
            concecionaria += m1;
            concecionaria += m2;
            concecionaria += a1;
            concecionaria += a2;
            concecionaria += a3;

            Console.WriteLine(concecionaria.ToString());
            Console.WriteLine("<---------------------------------------------->");
            Console.ReadKey();
            Console.Clear();

            // Quito un item y muestro
            concecionaria -= c1;

            Console.WriteLine(concecionaria.ToString());
            Console.WriteLine("<---------------------------------------------->");
            Console.ReadKey();
            Console.Clear();

            // Muestro solo Motos
            Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Moto));
            Console.WriteLine("<---------------------------------------------->");
            Console.ReadKey();
            Console.Clear();

            // Muestro solo Camiones
            Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Camion));
            Console.WriteLine("<---------------------------------------------->");
            Console.ReadKey();
            Console.Clear();

            // Muestro solo Automoviles
            Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Automovil));
            Console.WriteLine("<---------------------------------------------->");
            Console.ReadKey();
        }
        /// <summary>
        /// Retorna un string con el espacio disponible, el espacio ocupado y las caracteristicas de los vehiculos del listado que coincidan con el paramatro tipoDeVehiculo
        /// </summary>
        /// <param name="concecionaria"></param>
        /// <param name="tipoDeVehiculo"></param>
        /// <returns></returns>
        public string Mostrar(Concecionaria concecionaria, ETipo tipoDeVehiculo)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("Tenemos " + concecionaria._vehiculos.Count + " lugares ocupados de un total de " + concecionaria._espacioDisponible + " disponibles");
            sb.AppendLine("");
            foreach (Vehiculo v in concecionaria._vehiculos)
            {
                switch (tipoDeVehiculo)
                {
                case ETipo.Automovil:
                    if (v is Automovil)
                    {
                        sb.AppendLine(((Automovil)v).Mostrar());
                    }
                    break;

                case ETipo.Moto:
                    if (v is Moto)
                    {
                        sb.AppendLine(((Moto)v).Mostrar());
                    }
                    break;

                case ETipo.Camion:
                    if (v is Camion)
                    {
                        sb.AppendLine(((Camion)v).Mostrar());
                    }
                    break;

                default:
                    if (v is Automovil)
                    {
                        sb.AppendLine(((Automovil)v).Mostrar());
                    }
                    if (v is Moto)
                    {
                        sb.AppendLine(((Moto)v).Mostrar());
                    }
                    if (v is Camion)
                    {
                        sb.AppendLine(((Camion)v).Mostrar());
                    }
                    break;
                }
            }

            return(sb.ToString());
        }