示例#1
0
        private void addVehicle()
        {
            getOwnerDetails(out string ownerPhone, out string ownerName);
            Console.WriteLine("Please choose the vehicle type out of the following options");
            displayEnumOptions <VehicleBuilder.eVehicleType>();
            VehicleBuilder.eVehicleType userRequestedVehicleType =
                (VehicleBuilder.eVehicleType)getEnumChoiceFromUser <VehicleBuilder.eVehicleType>();
            Dictionary <string, VehicleParam> paramsDictionary = new Dictionary <string, VehicleParam>();
            Vehicle             vehicleToAdd   = VehicleBuilder.BuildVehicle(userRequestedVehicleType);
            List <VehicleParam> parametersList = vehicleToAdd.GetNewVehicleParams();

            foreach (VehicleParam param in parametersList)
            {
                Console.WriteLine("Please enter {0}", param.FriendlyName);
                if (param.Type.IsEnum)
                {
                    Console.WriteLine("Options: " + string.Join(",", Enum.GetNames(param.Type)));
                    string userInput = Console.ReadLine();
                    param.Value = Enum.Parse(param.Type, userInput);
                }
                else
                {
                    string userInput = Console.ReadLine();
                    param.Value = Convert.ChangeType(userInput, param.Type);
                }

                paramsDictionary.Add(param.Name, param);
            }

            vehicleToAdd.InitNewVehicle(paramsDictionary);
            m_Garage.AddVehicle(ownerPhone, ownerName, vehicleToAdd);
            Console.WriteLine("Vehicle was added to the garage");
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        private void enterVehicle()
        {
            string  licenseNumber = getLicenceNumberFromUser();
            Vehicle vehicle       = m_Garage.GetVehicle(licenseNumber);

            // No such vehicle, add it
            if (vehicle == null)
            {
                VehicleBuilder.eVehicleType typeOfVehicle = getVehicleTypeFromUser();
                string   vehicleModel           = getVehicleModelFromUser();
                string[] vehicleSpecificDetails = getVehicleSpecificDetailsFromUser(typeOfVehicle);
                vehicle            = m_Garage.vehicleBuilder.buildVehicle(licenseNumber, typeOfVehicle, vehicleModel, vehicleSpecificDetails);
                vehicle.Tires      = getTiresDetailsFromUser(vehicle);
                vehicle.LicenseNum = licenseNumber;
                vehicle.OwnerName  = getOwnerNameFromUser();
                vehicle.OwnerPhone = getOwnerPhoneFromUser();
                getAdditionalDetails(vehicle);
                m_Garage.AddVehicle(vehicle);

                write("Vehicle was successfuly added!");
            }
            // Already exists, change status
            else
            {
                m_Garage.ChangeStatus(vehicle, eVehicleStatus.InReparation);
                write(String.Format("Vehicle status changed to {0}", eVehicleStatus.InReparation));
            }
        }
示例#3
0
        private string[] getVehicleSpecificDetailsFromUser(VehicleBuilder.eVehicleType typeOfVehicle)
        {
            string[] vehicleDetailsList = m_Garage.vehicleBuilder.GetVehicleDetails(typeOfVehicle);
            string[] vehicleDetails     = new string[vehicleDetailsList.Length];
            for (int i = 0; i < vehicleDetailsList.Length; i++)
            {
                Console.WriteLine("Please enter " + vehicleDetailsList[i]);
                vehicleDetails[i] = Console.ReadLine();
            }

            return(vehicleDetails);
        }