Example #1
0
        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();
            }
        }
Example #2
0
        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}
                ");
            }
        }
Example #3
0
 public CreateCarCommand(Factory factory, ProviderDetails provider)
 {
     this.factory  = factory;
     this.provider = provider;
 }
Example #4
0
 public CreatDetailsCommand(ProviderDetails provider)
 {
     this.provider = provider;
 }
Example #5
0
 public Car(ProviderDetails provider)
 {
     this.provider = provider;
 }