public CarSalesman() { this.engineFactory = new EngineFactory(); this.carFactory = new CarFactory(); this.engineCatalog = new EngineCatalog(); this.carCatalog = new CarCatalog(); }
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); } }
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)); }