public CarSalesman()
 {
     this.engineFactory = new EngineFactory();
     this.carFactory    = new CarFactory();
     this.engineCatalog = new EngineCatalog();
     this.carCatalog    = new CarCatalog();
 }
예제 #2
0
        public static void Main()
        {
            CarFactory    carFactory    = new CarFactory();
            CarCatalog    cars          = new CarCatalog();
            EngineFactory engineFactory = new EngineFactory();
            EngineCatalog engines       = new EngineCatalog();
            int           engineCount   = int.Parse(Console.ReadLine());

            for (int i = 0; i < engineCount; i++)
            {
                string[] parameters = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                engines.Add(engineFactory.Create(parameters));
            }

            int carCount = int.Parse(Console.ReadLine());

            for (int i = 0; i < carCount; i++)
            {
                string[] parameters = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                cars.Add(carFactory.Create(engines, parameters));
            }

            foreach (var car in cars)
            {
                Console.WriteLine(car);
            }
        }
예제 #3
0
        public Car Create(EngineCatalog engines, string[] parameters)
        {
            string model       = parameters[0];
            string engineModel = parameters[1];
            Engine engine      = engines.Engines.FirstOrDefault(x => x.Model == engineModel);

            if (parameters.Length == 3 && int.TryParse(parameters[2], out var weight))
            {
                return(new Car(model, engine, weight));
            }
            else if (parameters.Length == 3)
            {
                string color = parameters[2];
                return(new Car(model, engine, color));
            }
            else if (parameters.Length == 4)
            {
                string color = parameters[3];
                return(new Car(model, engine, int.Parse(parameters[2]), color));
            }

            return(new Car(model, engine));
        }