예제 #1
0
        static void Main(string[] args)
        {
            Concecionaria concecionaria = new Concecionaria(5);

            Camion    c1 = new Camion(EMarca.Scania, "ASD012", ConsoleColor.Black);
            Camion    c2 = new Camion(EMarca.Iveco, "ASD913", ConsoleColor.Red);
            Moto      m1 = new Moto(EMarca.BMW, "HJK789", ConsoleColor.White);
            Moto      m2 = new Moto(EMarca.Yamaha, "IOP852", ConsoleColor.Blue);
            Automovil a1 = new Automovil(EMarca.Chevrolet, "QWE968", ConsoleColor.Gray);
            Automovil a2 = new Automovil(EMarca.Ford, "TYU426", ConsoleColor.DarkBlue);
            Automovil a3 = new Automovil(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>
        /// Expone los datos de la concecionaria y sus vehículos (incluidas sus herencias)
        /// SOLO del tipo requerido
        /// </summary>
        /// <param name="concecionaria">Concecionaria a exponer</param>
        /// <param name="ETipo">Tipos de Vehiculos a mostrar</param>
        /// <returns></returns>
        public static string Mostrar(Concecionaria concecionaria, ETipo tipoDeVehiculo)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", concecionaria._vehiculos.Count, concecionaria._espacioDisponible);
            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());
        }