public void AddMotorAndFillWithDetails(eTypeOfVeichle i_TypeOfVeichile, string i_LicenceID, string i_VehicleModel, float i_EngineCurrentEnergy, List <Tire> i_Tires, eLiecenceType i_LicenceType, int i_EngineCapacity) { switch (i_TypeOfVeichile) { case eTypeOfVeichle.FuelMotorCycle: case eTypeOfVeichle.ElectricMotorCycle: if (Vehicles == null) { Vehicles = new List <Vehicle>(); } if (Motors == null) { Motors = new List <MotorBike>(); } MotorBike motor = VeichileFactory.CreateMotorBike(i_TypeOfVeichile); motor.LicenceID = i_LicenceID; motor.Model = i_VehicleModel; motor.Engine.CurrentEnergy = i_EngineCurrentEnergy; motor.Tires = i_Tires; motor.LiecenceType = i_LicenceType; motor.EngineCapacity = i_EngineCapacity; Motors.Add(motor); Vehicles.Add(motor); break; } }
public static eTypeOfVeichle AddVeichleToGarageMenu() { string phoneNumber, fullName; string licenceID, model; float currentGazAmountOrHoursLeftForBattery, capacity = 0; int intColor, intDoorsType, readTypeOfVeicle, intLicenceType; bool conrainsIsDanger = false; List <Tire> tire = new List <Tire>(); eColors color = eColors.Gray; eDoorsType doorType = eDoorsType.Two; eLiecenceType liecenceType = eLiecenceType.A; Garage garage = new Garage(); Console.Clear(); readTypeOfVeicle = int.Parse(addVeichleChoice()); Console.WriteLine("Please enter licence id of the car:"); licenceID = Console.ReadLine(); if (!Garage.IsLicenceIDExistInGarage(licenceID)) { do { Console.WriteLine("Please enter your full name.(only letters)"); fullName = Console.ReadLine(); } while (string.IsNullOrWhiteSpace(fullName) || isStringContainsNumsOrSigns(fullName)); do { Console.WriteLine("Please enter your phone number(numbers only no spaces)"); phoneNumber = Console.ReadLine(); } while (string.IsNullOrWhiteSpace(phoneNumber) || !isStringContainsOnlyNumerics(phoneNumber)); Console.WriteLine("Please enter Model of the car"); model = Console.ReadLine(); do { if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.Truck) { Console.WriteLine("Please enter current gas amount of the car (Numeric)"); } else { Console.WriteLine("Please enter current hours lefft for battery of the car (numeric)"); } } while (!float.TryParse(Console.ReadLine(), out currentGazAmountOrHoursLeftForBattery)); initTires(out tire, (eTypeOfVeichle)readTypeOfVeicle); if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) { do { Console.WriteLine( @"Please enter Color of the car 1. grey 2. green 3. white 4. red"); } while (!(int.TryParse(Console.ReadLine(), out intColor) && intColor >= 1 && intColor <= 4)); color = (eColors)intColor; } else if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || //3 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricMotorCycle) //4 { do { Console.WriteLine( @"Please enter licence type of the car 1. A 2. A1 3. B1 4. B2"); } while (!(int.TryParse(Console.ReadLine(), out intLicenceType) && intLicenceType >= 1 && intLicenceType <= 4)); liecenceType = (eLiecenceType)intLicenceType; } else //5 { string read; do { Console.WriteLine("Please enter Does contains danger matirials(Y/N)"); read = Console.ReadLine(); } while (!(read == "y" || read == "Y" || read == "n" || read == "N")); conrainsIsDanger = read == "Y" || read == "y"; } if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) { do { Console.WriteLine("Please enter doors type of the car(between 2-5)"); } while (!((int.TryParse(Console.ReadLine(), out intDoorsType)) && intDoorsType >= 2 && intDoorsType <= 5)); doorType = (eDoorsType)(intDoorsType - 1); } else { do { Console.WriteLine("Please enter engine capacity of the car(cc)"); } while (!(float.TryParse(Console.ReadLine(), out capacity))); } try { if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) { garage.AddCarAndFillWithDetails((eTypeOfVeichle)readTypeOfVeicle, licenceID, model, currentGazAmountOrHoursLeftForBattery, tire, color, doorType); Console.WriteLine("added a new car is succeess"); } else if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricMotorCycle) { garage.AddMotorAndFillWithDetails( (eTypeOfVeichle)readTypeOfVeicle, licenceID, model, currentGazAmountOrHoursLeftForBattery, tire, liecenceType, (int)capacity); Console.WriteLine("added a new motorecycle is succeess"); } else { garage.AddTruckAndFillWithDetails( eTypeOfVeichle.Truck, licenceID, model, currentGazAmountOrHoursLeftForBattery, tire, conrainsIsDanger, capacity); Console.WriteLine("added a new truck is succeess"); } garage.AddCustomer(fullName, phoneNumber, licenceID); Console.WriteLine("for exit to main menu press any key"); Console.ReadLine(); } catch (ValueOutOfRangeException ex) { Console.WriteLine( @" {0} added a new car/motorcycle/truck is failed. for try again press any key", ex.Message); Console.ReadLine(); AddVeichleToGarageMenu(); } } else { Garage.ChangeStatusOfVehicleIfExists(licenceID, eVeichileStatus.FIXING); Console.WriteLine( @"The Licence ID is exists - changing the status vehicle to fixing for exit to main menu press any key"); Console.ReadLine(); } return((eTypeOfVeichle)readTypeOfVeicle); }
public static eTypeOfVeichle AddVeichleToGarage() { string phoneNumber, fullName; string licenceID, model, tiresModel; float currentGazAmountOrHoursLeftForBattery, tiresCurrentPressure, capacity = 0; int intColor, intDoorsType, readTypeOfVeicle, intLicenceType; bool conrainsIsDanger = false; eColors color = eColors.Gray; eDoorsType doorType = eDoorsType.Two; eLiecenceType liecenceType = eLiecenceType.A; Garage garage = new Garage(); Console.Clear(); readTypeOfVeicle = int.Parse(addVeichleChoice()); Console.WriteLine("Please enter licence id of the car:"); licenceID = Console.ReadLine(); if (!Garage.IsLicenceIDExistInGarage(licenceID)) { Console.WriteLine("Please enter your full name"); fullName = Console.ReadLine(); Console.WriteLine("Please enter your phone number"); phoneNumber = Console.ReadLine(); Console.WriteLine("Please enter Model of the car"); model = Console.ReadLine(); do { if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || //1 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || //3 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.Truck) //5 { Console.WriteLine("Please enter current gas amount of the car (numeric)"); } else //2,4 { Console.WriteLine("Please enter current hours lefft for battery of the car (numeric)"); } } while (!float.TryParse(Console.ReadLine(), out currentGazAmountOrHoursLeftForBattery)); Console.WriteLine("please enter Tires Model of the car"); tiresModel = Console.ReadLine(); do { Console.WriteLine("Please enter Tires Current pressure of the car (numeric)"); } while (!float.TryParse(Console.ReadLine(), out tiresCurrentPressure)); if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || //1 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) //2 { do { Console.WriteLine("Please enter Color of the car\ngrey->1, green->2, white->3 , red->4"); } while (!(int.TryParse(Console.ReadLine(), out intColor) && intColor >= 1 && intColor <= 4)); color = (eColors)intColor; } else if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || //3 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricMotorCycle) //4 { do { Console.WriteLine("Please enter licence type of the car\nA->1, A1->2, B1->3 , B2->4"); } while (!(int.TryParse(Console.ReadLine(), out intLicenceType) && intLicenceType >= 1 && intLicenceType <= 4)); liecenceType = (eLiecenceType)intLicenceType; } else //5 { string read; do { Console.WriteLine("Please enter Does contains danger matirials(Y/N)"); read = Console.ReadLine(); } while (!(read == "y" || read == "Y" || read == "n" || read == "N")); conrainsIsDanger = read == "Y" || read == "y"; } if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || //1 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) //2 { do { Console.WriteLine("Please enter doors type of the car(between 2-5)"); } while (!((int.TryParse(Console.ReadLine(), out intDoorsType)) && intDoorsType >= 2 && intDoorsType <= 5)); doorType = (eDoorsType)(intDoorsType - 1); } else //3,4,5 { do { Console.WriteLine("Please enter engine capacity of the car(cc)"); } while (!(float.TryParse(Console.ReadLine(), out capacity))); } try { if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelCar || //1 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricCar) //2 { garage.AddCarAndFillWithDetails((eTypeOfVeichle)readTypeOfVeicle, licenceID, model, currentGazAmountOrHoursLeftForBattery, tiresModel, tiresCurrentPressure, color, doorType); Console.WriteLine("added a new car is succeess"); Console.WriteLine("for exit to main menu press any key"); Console.ReadLine(); } else if ((eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.FuelMotorCycle || //3 (eTypeOfVeichle)readTypeOfVeicle == eTypeOfVeichle.ElectricMotorCycle) //4 { garage.AddMotorAndFillWithDetails((eTypeOfVeichle)readTypeOfVeicle, licenceID, model, currentGazAmountOrHoursLeftForBattery, tiresModel, tiresCurrentPressure, liecenceType, capacity); Console.WriteLine("added a new motorecycle is succeess"); Console.WriteLine("for exit to main menu press any key"); Console.ReadLine(); } else //5 { garage.AddTruckAndFillWithDetails(eTypeOfVeichle.Truck, licenceID, model, currentGazAmountOrHoursLeftForBattery, tiresModel, tiresCurrentPressure, conrainsIsDanger, capacity); Console.WriteLine("added a new truck is succeess"); } garage.AddCustomer(fullName, phoneNumber, licenceID); Console.WriteLine("for exit to main menu press any key"); Console.ReadLine(); } catch (ValueOutOfRangeException ex) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine(ex.Message); Console.WriteLine("added a new car/motorcycle/truck is failed.\nto try again press any key"); Console.ReadLine(); //System.Threading.Thread.Sleep(1500); return(AddVeichleToGarage()); } } else { Console.WriteLine("The Licence ID is exists"); Console.WriteLine("for exit to main menu press any key"); Console.ReadLine(); } System.Threading.Thread.Sleep(1500); return((eTypeOfVeichle)readTypeOfVeicle); }