static void Main(string[] args) { Factory factory = new Factory(); ProviderDetails provider = new ProviderDetails(); bool isMenu = true; var commands = new Dictionary <ConsoleKey, ICommand> { [ConsoleKey.D1] = new CreateCarCommand(factory, provider), [ConsoleKey.D2] = new CreatDetailsCommand(provider), [ConsoleKey.D3] = new ShowStatusCars(factory) }; while (isMenu) { Console.WriteLine("Press 1 - Create Car, 2 - Create Random Details, 3 - Show All Status Cars, Escape - Exit"); var key = Console.ReadKey().Key; if (!commands.ContainsKey(key)) { break; } var selectCommand = commands[key]; selectCommand.Act(); } }
public void CreateCar(ProviderDetails provider) { Console.Clear(); if (cars != null) { foreach (var cr in cars) { if (cr.wheels.Count != kitWheel & provider.wheels.Count >= kitWheel) { cr.CompleteWheel(); provider.wheels.RemoveRange(0, kitWheel); Console.WriteLine($"Complete! {cr.ToString()}"); } if (cr.engines.Count != kitEngine & provider.engines.Count >= kitEngine) { cr.CompleteEngin(); provider.engines.RemoveRange(0, kitEngine); Console.WriteLine($"Complete! {cr.ToString()}"); } if (cr.steeringWheel.Count != kitSteeringWheel & provider.steeringWheel.Count >= kitSteeringWheel) { cr.CompleteSteeringWheel(); provider.steeringWheel.RemoveRange(0, kitSteeringWheel); Console.WriteLine($"Complete! {cr.ToString()}"); } if (cr.seates.Count != kitSeat & provider.seates.Count >= kitSeat) { cr.CompleteSeates(); provider.seates.RemoveRange(0, kitSeat); Console.WriteLine($"Complete! {cr.ToString()}"); } } } if (provider.wheels.Count >= kitWheel) { Car car = new Car(provider); car.CompleteWheel(); provider.wheels.RemoveRange(0, kitWheel); cars.Add(car); Console.WriteLine($"Created! {car.ToString()}"); } else if (provider.engines.Count >= kitEngine) { Car car = new Car(provider); car.CompleteEngin(); provider.engines.RemoveRange(0, kitEngine); cars.Add(car); Console.WriteLine($"Created! {car.ToString()}"); } else if (provider.steeringWheel.Count >= kitSteeringWheel) { Car car = new Car(provider); car.CompleteSteeringWheel(); provider.steeringWheel.RemoveRange(0, kitSteeringWheel); cars.Add(car); Console.WriteLine($"Created! {car.ToString()}"); } else if (provider.seates.Count >= kitSeat) { Car car = new Car(provider); car.CompleteSeates(); provider.seates.RemoveRange(0, kitSeat); cars.Add(car); Console.WriteLine($"Created! {car.ToString()}"); } else { Console.WriteLine($@"not enough details: kitWheel = { provider.wheels.Count}/{ 4}, kitEngine = { provider.engines.Count}/{ 2}, kitSteeringWheel = { provider.steeringWheel.Count}/{ 1}, kitSeat = { provider.seates.Count}/{ 2} "); } }
public CreateCarCommand(Factory factory, ProviderDetails provider) { this.factory = factory; this.provider = provider; }
public CreatDetailsCommand(ProviderDetails provider) { this.provider = provider; }
public Car(ProviderDetails provider) { this.provider = provider; }