コード例 #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
        private static void insertNewVehicle(Garage i_Garage)
        {
            Console.WriteLine("Please enter license number:");
            string licenseNum = checkIfnotEmpty(Console.ReadLine());

            bool alreadyInTheGarage = i_Garage.CheckIfInGarage(licenseNum);

            if (!alreadyInTheGarage)
            {
                Console.WriteLine("Please enter owner's name:");
                string ownerName = checkIfnotEmpty(Console.ReadLine());

                Console.WriteLine("Please enter owner's number:");
                string ownerNumber = checkIfnotEmpty(Console.ReadLine());

                Console.WriteLine("Please enter model's name:");
                string modelName = checkIfnotEmpty(Console.ReadLine());

                VehiclesCreator.VehicleType selectedType = vehicleSelection(i_Garage);

                Dictionary <string, string> vehicleDictionary = new Dictionary <string, string>();
                List <string> vehicleProperties = i_Garage.GetProperties(selectedType);

                foreach (string property in vehicleProperties)
                {
                    string toPrint = string.Format("Please enter {0}:", property);
                    Console.WriteLine(toPrint);
                    vehicleDictionary.Add(property, Console.ReadLine());
                }


                vehicleDictionary.Add("Owner name", ownerName);
                vehicleDictionary.Add("Owner phone", ownerNumber);
                vehicleDictionary.Add("License number", licenseNum);
                vehicleDictionary.Add("Model name", modelName);

                try
                {
                    Vehicle newVehicle = VehiclesCreator.SelectConstructor(selectedType, vehicleDictionary);
                    i_Garage.AddVehicle(newVehicle, licenseNum);
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (ValueOutOfRangeException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            else
            {
                Console.WriteLine("Your vehicle is already in the garage.");
            }
        }
コード例 #3
0
        internal void AddNewVehicle()
        {
            int    o_VehicleType = 0;
            string o_ModelName;
            string o_LicensePlateNumber;
            string o_OwnerName;
            string o_OwnerPhoneNumber;
            char   o_IsFuelBased;

            ChatBot.GetVehicleGeneralDetails(out o_VehicleType, out o_ModelName, out o_IsFuelBased, out o_LicensePlateNumber);
            SetOwnerDetails(out o_OwnerName, out o_OwnerPhoneNumber);
            bool v_IsFuelBased = o_IsFuelBased == 'F' || o_IsFuelBased == 'f' ? true : false;
            Dictionary <string, string> extraFeatursDictionary = GetExtraFeatures(o_VehicleType);

            m_MyGarage.AddVehicle(o_VehicleType, o_ModelName, o_LicensePlateNumber, o_OwnerName, o_OwnerPhoneNumber, v_IsFuelBased, extraFeatursDictionary);
            SetEnergyType(o_LicensePlateNumber);
            SetWheels(o_LicensePlateNumber);
        }
コード例 #4
0
ファイル: GarageUI.cs プロジェクト: itonroe/IDC
        private static bool ManageAddVehicle()
        {
            Console.WriteLine("Vehicle's License Plate:");
            Console.Write("\t");
            string licensePlate = Console.ReadLine();

            if (m_Garage.IsExists(licensePlate))
            {
                Console.WriteLine("The vehicle is already in the garage.");
                m_Garage.ChangeStatus(licensePlate, "InProgress");

                PrintVehicleInformation(licensePlate);

                Console.WriteLine("\nJust letting you know, vehicle's status changed to 'In Progress'.");
            }
            else
            {
                PrintHeadLine("Basic Information", false);
                Console.WriteLine();
                string vehicleSelection = GetSelectionOf("Vehicle Type", m_Garage.VehicleTypes(), 0);
                Console.WriteLine();
                string engineSelection = GetSelectionOf("Engine Type", m_Garage.EngineTypes(), 0);

                PrintHeadLine($"{engineSelection} {vehicleSelection} - {licensePlate}", false);
                PrintHeadLine("More Information", true);

                Dictionary <string, Dictionary <Dictionary <string, string>, string[]> > nextInfo = m_Garage.AddVehicle(vehicleSelection, engineSelection, licensePlate);
                Dictionary <string, Dictionary <string, string> > nextInfo_answers = new Dictionary <string, Dictionary <string, string> >();

                Console.WriteLine($"\nOwner:");
                string ownerName = GetFreeInputOf("Vehicle's Owner Name");
                Console.WriteLine();
                string ownerPhoneNumber = GetFreeInputOf("Phone Number: (05X-XXXXXXX)", "phone");

                m_Garage.SetVehicleOwner(licensePlate, ownerName, ownerPhoneNumber);

                bool wantToAddVehicle = true;

                while (wantToAddVehicle)
                {
                    try
                    {
                        foreach (var generalProperty in nextInfo)
                        {
                            Console.WriteLine($"\n{generalProperty.Key}:");

                            Dictionary <string, string> newAnswerProperty = new Dictionary <string, string>();

                            foreach (var subProperty in generalProperty.Value)
                            {
                                foreach (var oneQuestion in subProperty.Key)
                                {
                                    string question = oneQuestion.Key;
                                    string answer;

                                    if (nextInfo_answers.TryGetValue(generalProperty.Key, out _))
                                    {
                                        Console.WriteLine($"\t{oneQuestion.Key}: {nextInfo_answers[generalProperty.Key][question]}");
                                    }
                                    else
                                    {
                                        if (subProperty.Value == null)
                                        {
                                            // That's a free writing
                                            answer = GetFreeInputOf(question);
                                        }
                                        else
                                        {
                                            // We have some options to select from
                                            answer = GetSelectionOf(question, subProperty.Value, 1);
                                        }

                                        newAnswerProperty.Add(question, answer);
                                    }
                                }
                            }

                            if (!nextInfo_answers.TryGetValue(generalProperty.Key, out _))
                            {
                                nextInfo_answers.Add(generalProperty.Key, newAnswerProperty);
                            }
                            else
                            {
                                nextInfo_answers.Remove(generalProperty.Key);
                            }
                        }

                        m_Garage.SetNewVehicleData(licensePlate, ref nextInfo_answers);

                        Console.WriteLine("Vehicle added successfully");
                        wantToAddVehicle = false;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        wantToAddVehicle = AgainOrBack("Try again to add this vehicle");
                    }
                }
            }

            return(AgainOrBack("Add a different vehicle"));
        }
コード例 #5
0
ファイル: ConsoleUser.cs プロジェクト: mirzviz/GarageProject
        private void addVehicle()
        {
            Console.Clear();
            Console.WriteLine("Enter 0 for an Electric Car");
            Console.WriteLine("Enter 1 for a Combustion Car");
            Console.WriteLine("Enter 2 for an Electric Motorcycle");
            Console.WriteLine("Enter 3 for a Combustion Motorcycle");
            Console.WriteLine("Enter 4 for a Truck");
            string inputString = Console.ReadLine();
            int    inputInt;

            while (!int.TryParse(inputString, out inputInt))
            {
                Console.WriteLine("Please enter a number");
                inputString = Console.ReadLine();
            }

            while (inputInt < 0 || inputInt > 4)
            {
                Console.WriteLine("Please enter a number from the list :)");
                inputString = Console.ReadLine();
            }

            int           numberOfDoors;
            Color         color;
            LicenseType   licenseType;
            int           intCapacity;
            TypeOfVehicle typeOfVehicle = (TypeOfVehicle)inputInt;

            Console.WriteLine("Enter Wheel Manufacturer Name");
            string weelManufaturerName = Console.ReadLine();

            Console.WriteLine("Enter Model Name");
            string ModelName = Console.ReadLine();

            Console.WriteLine("Enter License Plate");
            string  LicensePlate = Console.ReadLine();
            Vehicle newVehicle   = VehicleFactory.Generate(weelManufaturerName, ModelName, LicensePlate, typeOfVehicle);

            switch (typeOfVehicle)
            {
            case TypeOfVehicle.CombustionCar:
                color = getColorFromUser();
                Console.WriteLine("Enter the number of doors (2 - 5)");
                numberOfDoors = getIntInRanges(2, 5);
                ((CombustionCar)newVehicle).CarProperties = new CarProperties(color, numberOfDoors);
                break;

            case TypeOfVehicle.ElectricCar:
                color         = getColorFromUser();
                numberOfDoors = getNumberOfDoorsFromUser();
                ((ElectricCar)newVehicle).CarProperties = new CarProperties(color, numberOfDoors);
                break;

            case TypeOfVehicle.CombustionMotorcycle:
                licenseType = getLicenseTypeFromUser();
                intCapacity = getEngineCapacityFromUser();
                ((CombustionMotorcycle)newVehicle).MotorcycleProperties = new MotorcycleProperties(intCapacity, licenseType);
                break;

            case TypeOfVehicle.ElectricMotorcycle:
                licenseType = getLicenseTypeFromUser();
                intCapacity = getEngineCapacityFromUser();
                ((ElectricMotorcycle)newVehicle).MotorcycleProperties = new MotorcycleProperties(intCapacity, licenseType);
                break;

            case TypeOfVehicle.Truck:
                Console.WriteLine("is trunk cool? 1 for yes, 0 for no.");
                int  isTrunkCoolInt  = getIntInRanges(0, 1);
                bool isTrunkCoolBool = isTrunkCoolInt == 1;
                Console.WriteLine("Enter the trunk size");
                float trunkSize;
                if (!float.TryParse(Console.ReadLine(), out trunkSize))
                {
                    throw new FormatException("Format Error");
                }

                if (trunkSize < 0)
                {
                    throw new ValueOutOfRangeException(0, 1000);
                }

                Truck newTruck = newVehicle as Truck;
                if (newTruck != null)
                {
                    newTruck.IsTrunkCool = isTrunkCoolBool;
                    newTruck.TrunkSize   = trunkSize;
                }

                break;
            }

            Console.WriteLine("Enter Name Of Owner");
            string nameOfOwner = Console.ReadLine();

            Console.WriteLine("Enter Phone Of Owner");
            string phoneOfOwner = Console.ReadLine();

            m_Garage.AddVehicle(new VehicleInGarage(nameOfOwner, phoneOfOwner, newVehicle));
        }