private void handleBuild(VehicleBuildType vehicleBuildType) { switch (vehicleBuildType) { case VehicleBuildType.VehicleModel: m_VehicleBuilder.Model = ConsoleUtils.ParseModel(); break; case VehicleBuildType.VehicleID: m_VehicleBuilder.ID = ConsoleUtils.ParseVehicleID(); break; case VehicleBuildType.VehicleEngine: m_VehicleBuilder.InitalizeEngine(ConsoleUtils.ReadEnergyAmount()); break; case VehicleBuildType.VehicleWheels: m_VehicleBuilder.Wheels = ConsoleUtils.ParseWheels(m_VehicleBuilder.MaxWheelPressure, m_VehicleBuilder.ValidWheelsCount); break; case VehicleBuildType.VehicleColor: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseColor()); break; case VehicleBuildType.VehicleDoors: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseDoorsType()); break; case VehicleBuildType.VehicleLicence: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseLicenceType()); break; case VehicleBuildType.VehicleHazardous: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseHazardousType()); break; case VehicleBuildType.VehicleEngineCapacity: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseCapacity()); break; case VehicleBuildType.VehicleWeight: m_VehicleBuilder.AddComponent(ConsoleUtils.ParseWeight()); break; default: throw new ArgumentException("Unknown vehicle type"); } }
private void doAddVehicle() { Contact contact = ConsoleUtils.ParseContact(); eVehicleType type = ConsoleUtils.ParseVehicleType(); initVehicleBuilder(type); while (true) { try { Console.Clear(); Console.WriteLine(m_VehicleBuilder.ToString()); VehicleBuildType vehicleBuildType = ConsoleUtils.ParseVehicleBuildType(); if (vehicleBuildType == VehicleBuildType.Done) { Vehicle vehicleInBuildProcess = m_VehicleBuilder.Build(); r_GarageContainer.AddVehicle(contact, vehicleInBuildProcess); Console.WriteLine("Vehicle added."); waitForKeyPress(); break; } handleBuild(vehicleBuildType); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); waitForKeyPress(); } catch (ValueOutOfRangeException ex) { Console.WriteLine(ex.Message); waitForKeyPress(); } } }