private void BuildBus() { if (((BusBuilder)Builder).Car.Driver == null) { Builder.BoardDriver(DriverStore.GetDriver(typeof(BusDriver))); } while (((BusBuilder)Builder).Car.Passengers.Count != ((BusBuilder)Builder).Car.Capacity) { Passenger passenger = PassengerStore.GetPassenger(new HashSet <Type>() { typeof(Adult), typeof(Child), typeof(Preferential) }); switch (passenger) { case Child child: Builder.BoardChild(child); break; case Preferential preferential: Builder.BoardPreferential(preferential); break; case Adult adult: Builder.BoardAdult(adult); break; } } }
public int BoardDriver(DriverStore driverStore, int amount = 1) { if (Car.Driver == null && driverStore.Count(typeof(BusDriver)) != 0) { Car.Driver = driverStore.GetDriver(typeof(BusDriver)); return(amount - 1); } else { return(amount); } }
private void BuildTaxi() { if (((TaxiBuilder)Builder).Car.Driver == null) { Builder.BoardDriver(DriverStore.GetDriver(typeof(TaxiDriver))); } while (((TaxiBuilder)Builder).Car.Passengers.Count != ((TaxiBuilder)Builder).Car.Capacity) { Passenger passenger = PassengerStore.GetPassenger(new HashSet <Type>() { typeof(Adult), typeof(Child) }); switch (passenger) { case Child child: Builder.BoardChild(child); break; case Adult adult: Builder.BoardAdult(adult); break; } } }