Exemplo n.º 1
0
 public ConsoleManagerUI(Garage i_Garage)
 {
     m_Garage                 = i_Garage;
     m_VehicleCreator         = new VehicleCreation();
     m_AvailableVehicleTypes  = m_VehicleCreator.TypesOfVehicles;
     r_NumberOfTypesAvailable = m_AvailableVehicleTypes.Count;
 }
Exemplo n.º 2
0
        // Adds specific vehicle type info
        private static void ExpendVehicleParameter(VehicleCreation.eVehicleType i_VehicleType, Dictionary <string, string> io_Parameters)
        {
            Dictionary <string, string> aditionalInfo = AdditionalInfo.AditionalInfo(i_VehicleType);
            Dictionary <string, string> extraInfo     = new Dictionary <string, string>();
            bool validationFlag = false;

            while (!validationFlag)
            {
                foreach (string info in aditionalInfo.Keys.ToList())
                {
                    System.Console.WriteLine(info + " ");
                    aditionalInfo[info] = System.Console.ReadLine();
                }

                try
                {
                    extraInfo      = VehicleCreation.AddSpecInfo(i_VehicleType, aditionalInfo);
                    validationFlag = true;
                }
                catch (Exception e)
                {
                    validationFlag = false;
                    System.Console.WriteLine(e.Message);
                }
            }

            foreach (KeyValuePair <string, string> info in extraInfo)
            {
                io_Parameters.Add(info.Key, info.Value);
            }
        }
        internal static void AddVehicleToTheGarage(eVehicleTypes i_VeicleToTheGarage)
        {
            bool   isValid = false;
            string ownerName;
            string ownerPhoneNumber;

            GarageUI.GetVehicleOwnerDetails(out ownerName, out ownerPhoneNumber);
            Vehicle currentVehicleToAdd = VehicleCreation.CreateVehicle(i_VeicleToTheGarage);
            Dictionary <string, string> vehicleDetails = currentVehicleToAdd.CreateVehicleDetailsDict();

            vehicleDetails = currentVehicleToAdd.EngineOfVehicle.AddEngineDetailsToDict(vehicleDetails);

            while (!isValid)
            {
                vehicleDetails = GarageUI.GetVehicleDetailsFromUser(vehicleDetails, currentVehicleToAdd);

                try
                {
                    currentVehicleToAdd.AddVehicleInformation(vehicleDetails);
                    currentVehicleToAdd.EngineOfVehicle.AddEngineInformation(vehicleDetails);
                    isValid = true;
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception.Message);
                }
            }

            VehicleInGarage newVehicleIntheGarage = new VehicleInGarage(currentVehicleToAdd, ownerName, ownerPhoneNumber);

            ListVehiclesInGarage.Add(currentVehicleToAdd.LicenseNumber, newVehicleIntheGarage);
        }
Exemplo n.º 4
0
        private static string getStringOfVehicleTypes()
        {
            string stringOfVehicleTypes = VehicleCreation.GetStringVehicleTypes();

            return(stringOfVehicleTypes);
        }
Exemplo n.º 5
0
        public static Vehicle SetNewVehicle()
        {
            string vehicle = string.Empty;
            Dictionary <string, string> parametrs = new Dictionary <string, string>();
            string currentWheelPressure           = string.Empty;
            string currentEnergy  = string.Empty;
            string licenseNumber  = string.Empty;
            string typeOfWheel    = string.Empty;
            string modelType      = string.Empty;
            bool   validationFlag = !true;

            System.Console.WriteLine("Hello! Please enter your vehicle type, those are the vehicle we support:");
            int i = 0;

            foreach (eVehicleType type in Enum.GetValues(typeof(eVehicleType)))
            {
                System.Console.WriteLine("* For " + type.ToString() + " Press " + i);
                i++;
            }

            while (!validationFlag)
            {
                try
                {
                    vehicle        = System.Console.ReadLine();
                    validationFlag = Validation.TypeOfVehicle(vehicle);
                }
                catch (ArgumentException e)
                {
                    validationFlag = false;
                    System.Console.WriteLine(e.Message);
                }
            }

            validationFlag = !true;
            parametrs.Add("Vehicle Type", vehicle.ToString());
            Enum.TryParse <eVehicleType>(vehicle, out eVehicleType eVehicle);
            VehicleCreation.AddSpecInfo(eVehicle, parametrs);

            System.Console.WriteLine("Please enter your number of license:");

            while (!validationFlag)
            {
                try
                {
                    licenseNumber  = System.Console.ReadLine();
                    validationFlag = UIValidation.IsANumberValidation(licenseNumber);
                }
                catch (FormatException e)
                {
                    validationFlag = false;
                    System.Console.WriteLine(e.Message);
                }
            }
            validationFlag = !true;
            Console.Clear();
            parametrs.Add("Licence Number", licenseNumber);

            System.Console.WriteLine("Please enter the current pressure in your wheele:");

            while (!validationFlag)
            {
                try
                {
                    parametrs.TryGetValue("Maximal Air Pressure", out string maxAirPressue);
                    validationFlag = Validation.RangeValidation(currentWheelPressure = System.Console.ReadLine(), maxAirPressue);
                }
                catch (ArgumentException e)
                {
                    validationFlag = !true;
                    System.Console.WriteLine(e.Message);
                }
            }

            validationFlag = !true;
            parametrs.Add("Current Wheel Pressure", currentWheelPressure);

            System.Console.WriteLine("Please enter the type of the wheele:");

            while (!validationFlag)
            {
                try
                {
                    typeOfWheel    = UIValidation.UserStringValidation(System.Console.ReadLine());
                    validationFlag = true;
                }
                catch (FormatException e)
                {
                    validationFlag = !true;
                    System.Console.WriteLine(e.Message);
                }
            }

            validationFlag = !true;
            parametrs.Add("Type Of Wheele", typeOfWheel);

            System.Console.WriteLine("Please enter your current amount of eneregy left (Whether it's an" +
                                     " electric or a fuel engine):");

            while (!validationFlag)
            {
                try
                {
                    parametrs.TryGetValue("Engine Capacity", out string engineCapacity);
                    validationFlag = Validation.RangeValidation(currentEnergy = System.Console.ReadLine(), engineCapacity);
                }
                catch (ArgumentException e)
                {
                    validationFlag = !true;
                    System.Console.WriteLine(e.Message);
                }
            }

            validationFlag = !true;
            parametrs.Add("Amount Of Energy Left", currentEnergy);

            System.Console.WriteLine("Please enter the model of your car:");

            while (!validationFlag)
            {
                try
                {
                    modelType      = UIValidation.UserStringValidation(System.Console.ReadLine());
                    validationFlag = true;
                }
                catch (FormatException e)
                {
                    validationFlag = !true;
                    System.Console.WriteLine(e.Message);
                }
            }

            parametrs.Add("Model Type", modelType);
            parametrs = expendVehicleParameter(eVehicle, parametrs);
            VehicleCreation vehicleBuilder = new VehicleCreation(parametrs, eVehicle);
            Vehicle         newVehicle     = vehicleBuilder.vehicle;

            return(newVehicle);
        }
Exemplo n.º 6
0
        // Adds a vehicle to the garage, if vehicle is already in the garage, sets status as maintenence
        internal void AddVehicle(GarageLogic.Garage i_Garage)
        {
            string vehicle = string.Empty;
            Dictionary <string, string> parametrs = new Dictionary <string, string>();
            string licenseNumber  = string.Empty;
            string typeOfWheels   = string.Empty;
            string modelType      = string.Empty;
            bool   validationFlag = false;
            string name           = string.Empty;
            string phoneNumber    = string.Empty;

            Console.Clear();
            // Gets license number, if already exists change status to maintenence
            Console.WriteLine("Enter License Number");
            licenseNumber = Console.ReadLine();
            try
            {
                i_Garage.IsNotInGarage(licenseNumber);
            }
            catch
            {
                i_Garage.ChangeCarStatus(licenseNumber, Garage.eCarStatus.Maintenence);
                Console.WriteLine("Vehicle already in garage, status changes to maintenence");
                Thread.Sleep(1200);
                return;
            }

            Console.Clear();

            // get customer inforamtion
            Console.WriteLine("Please write your name");
            name = Console.ReadLine();
            Console.WriteLine("Please write your phone number");
            phoneNumber = Console.ReadLine();

            Console.Clear();

            // get and validate vehicle type
            System.Console.WriteLine("Please enter your vehicle type, those are the vehicle we support:");
            int i = 0;

            foreach (VehicleCreation.eVehicleType typeOfCar in Enum.GetValues(typeof(VehicleCreation.eVehicleType)))
            {
                System.Console.WriteLine("* For " + typeOfCar.ToString() + " Press " + i);
                i++;
            }

            while (!validationFlag)
            {
                try
                {
                    vehicle        = System.Console.ReadLine();
                    validationFlag = Validation.TypeOfVehicle(vehicle);
                }
                catch (Exception e)
                {
                    validationFlag = false;
                    System.Console.WriteLine(e.Message);
                }
            }

            parametrs.Add("Licence Number", licenseNumber);
            parametrs.Add("Vehicle Type", vehicle.ToString());
            Enum.TryParse <VehicleCreation.eVehicleType>(vehicle, out VehicleCreation.eVehicleType vehicleType);

            // get Vehicle Model
            Console.WriteLine("Please enter vehicle model");
            modelType = Console.ReadLine();
            parametrs.Add("Model Type", modelType);

            Console.Clear();

            // get wheels information
            System.Console.WriteLine("please enter the type of your wheels");
            typeOfWheels = Console.ReadLine();
            parametrs.Add("Type Of Wheel", typeOfWheels);

            string maxAirPressure = string.Empty;

            System.Console.WriteLine("Please enter the max air of your wheels");
            bool isNumber = false;

            while (!isNumber)
            {
                maxAirPressure = Console.ReadLine();
                try
                {
                    ValidtysUI.CheckIfANumber(maxAirPressure);
                    isNumber = true;
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            isNumber = false;
            parametrs.Add("Maximal Air Pressure", maxAirPressure);

            string currentAirPressure = string.Empty;

            System.Console.WriteLine("Please enter the current air of your wheels");
            bool isVaildAir = false;

            while (!isVaildAir)
            {
                currentAirPressure = Console.ReadLine();
                try
                {
                    ValidtysUI.CheckInputValidity(currentAirPressure, maxAirPressure);
                    isVaildAir = true;
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            parametrs.Add("Current Wheel Pressure", currentAirPressure);

            Console.Clear();

            // get engine information
            string maximumEnergy = string.Empty;
            bool   isValid       = false;

            Console.WriteLine("Please enter the maximun energy of your vehicle");

            while (!isNumber)
            {
                maximumEnergy = Console.ReadLine();
                try
                {
                    ValidtysUI.CheckIfANumber(maximumEnergy);
                    isNumber = true;
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            parametrs.Add("Max energy", maximumEnergy);

            string energyLeft = string.Empty;

            Console.WriteLine("Please enter the enregy left in the vehicle");

            while (!isValid)
            {
                energyLeft = Console.ReadLine();
                try
                {
                    ValidtysUI.CheckInputValidity(energyLeft, maximumEnergy);
                    isValid = true;
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            parametrs.Add("Amount Of Energy Left", energyLeft);

            Console.WriteLine("Is the vehicle electric?");
            Console.WriteLine("1. yes");
            Console.WriteLine("2. no");

            string answer = Console.ReadLine();

            Engine.eEngineType type = Engine.eEngineType.Electric;
            bool isOneOrTwo         = false;

            while (!isOneOrTwo)
            {
                if (answer == "1")
                {
                    type       = Engine.eEngineType.Electric;
                    isOneOrTwo = true;
                }

                if (answer == "2")
                {
                    type = Engine.eEngineType.Fuel;
                    int numberOfChoice = 1;
                    Console.WriteLine("Please pick one of the Fuel types below: ");

                    // iterate through gas types available and prints them
                    foreach (GarageLogic.FuelEngine.eFuelType fuelType in Enum.GetValues(typeof(GarageLogic.FuelEngine.eFuelType)))
                    {
                        Console.WriteLine(numberOfChoice + ". " + fuelType.ToString());
                        numberOfChoice++;
                    }

                    bool   isFuelType     = false;
                    string chosenFuelType = string.Empty;
                    while (!isFuelType)
                    {
                        chosenFuelType = Console.ReadLine();
                        try
                        {
                            ValidtysUI.CheckFuelType(chosenFuelType);

                            Array enumValues  = Enum.GetValues(typeof(FuelEngine.eFuelType));
                            int   chosenAsInt = int.Parse(chosenFuelType) - 1;
                            parametrs.Add("Fuel Kind", enumValues.GetValue(chosenAsInt).ToString());
                            isFuelType = true;
                        }
                        catch (ArgumentException e)
                        {
                            Console.WriteLine(e.Message);
                        }
                        catch (FormatException e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }

                    isOneOrTwo = true;
                }

                if (answer != "1" && answer != "2")
                {
                    Console.WriteLine("please enter 1 or 2");
                    answer = Console.ReadLine();
                }
            }

            parametrs.Add("Engine Type", type.ToString());
            Console.Clear();

            ExpendVehicleParameter(vehicleType, parametrs);
            VehicleCreation BuildVehicle = new VehicleCreation(parametrs, vehicleType);
            Vehicle         newVehicle   = BuildVehicle.Vehicle;

            i_Garage.AddCustomer(name, phoneNumber, newVehicle);

            // show success message and takes back to main menu
            SuccessFinishOperation();
        }
Exemplo n.º 7
0
        private string getCurrentEnergyPercentageOFVehicle(VehicleCreation.eVehicleTypes i_VehicleType)
        {
            const bool v_CorrectInput          = true;
            bool       userEnteredCorrectInput = true;
            string     strCurrentAmountOfFuelOrBatteryFromUser = null;

            userEnteredCorrectInput = !userEnteredCorrectInput;

            while (userEnteredCorrectInput != v_CorrectInput)
            {
                try
                {
                    Console.WriteLine("Please enter current energy amount of the vehicle : ");
                    strCurrentAmountOfFuelOrBatteryFromUser = Console.ReadLine();

                    CheckInputsFromUserCorrect.CheckInputFromUserIsPositiveFloatNumberType(strCurrentAmountOfFuelOrBatteryFromUser);

                    // Check the energy source power is less than the max
                    CheckInputsFromUserCorrect.CheckFloatInputFromUserIsInCorrectRange(strCurrentAmountOfFuelOrBatteryFromUser, 0, VehicleCreation.GetMaxEnergyPowerSourceAccordingToVehicleType(i_VehicleType));

                    userEnteredCorrectInput = v_CorrectInput;
                }
                catch (FormatException formatEx)
                {
                    Console.WriteLine(formatEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
                catch (ArgumentException argumentEx)
                {
                    Console.WriteLine(argumentEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
                catch (ValueOutOfRangeException valueOutOfRangeEx)
                {
                    Console.WriteLine(valueOutOfRangeEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
            }

            return(strCurrentAmountOfFuelOrBatteryFromUser);
        }
Exemplo n.º 8
0
        private float getWeelCurrentAirPressure(VehicleCreation.eVehicleTypes i_VehicleType)
        {
            const bool v_CorrectInput          = true;
            bool       userEnteredCorrectInput = true;
            string     strCurrentWheelAirPressureFromUser;
            float      floatCurrentWheelAirPressureFromUser = 0;

            userEnteredCorrectInput = !userEnteredCorrectInput;

            while (userEnteredCorrectInput != v_CorrectInput)
            {
                try
                {
                    Console.WriteLine("Please enter the wheel current pressure :");
                    strCurrentWheelAirPressureFromUser = Console.ReadLine();

                    CheckInputsFromUserCorrect.CheckInputFromUserIsPositiveFloatNumberType(strCurrentWheelAirPressureFromUser);
                    floatCurrentWheelAirPressureFromUser = float.Parse(strCurrentWheelAirPressureFromUser);

                    // Check the air pressure is less than the max
                    CheckInputsFromUserCorrect.CheckFloatInputFromUserIsInCorrectRange(strCurrentWheelAirPressureFromUser, 0, VehicleCreation.GetMaxWheelPressureAccordingToVehicleType(i_VehicleType));

                    userEnteredCorrectInput = v_CorrectInput;
                }
                catch (FormatException formatEx)
                {
                    Console.WriteLine(formatEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
                catch (ArgumentException argumentEx)
                {
                    Console.WriteLine(argumentEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
                catch (ValueOutOfRangeException valueOutOfRangeEx)
                {
                    Console.WriteLine(valueOutOfRangeEx.Message);
                    userEnteredCorrectInput = !v_CorrectInput;
                }
            }

            return(floatCurrentWheelAirPressureFromUser);
        }