Example #1
0
        public static void EnterNewVehicle(GarageLogic.GarageLogic i_Garage)
        {
            Vehicle vehicle = InitializeVehicle();
            Dictionary <string, Dictionary <string, string[]> > vehiclesQuestionsDictionary = i_Garage.GetVehicleRequiredData(vehicle);

            string[] carTypes = new string[vehiclesQuestionsDictionary.Keys.Count];
            vehiclesQuestionsDictionary.Keys.CopyTo(carTypes, 0);
            string carType = GetCarType(carTypes);
            Dictionary <string, string[]> questionsForUser  = vehiclesQuestionsDictionary[carType];
            Dictionary <string, object>   setDataDictionary = new Dictionary <string, object>();

            foreach (KeyValuePair <string, string[]> vehiclePair in questionsForUser)
            {
                Console.WriteLine(vehiclePair.Value[0]);
                Console.WriteLine("The type of answer: " + vehiclePair.Value[1]);
                string answer      = Console.ReadLine();
                object validAnswer = ParseAnswer(vehiclePair.Value[1], answer);

                while (validAnswer == null)
                {
                    Console.WriteLine("Invalid type - {0} should be {1}", vehiclePair.Key, vehiclePair.Value[1]);
                    Console.WriteLine(vehiclePair.Value[0]);
                    answer      = Console.ReadLine();
                    validAnswer = UI.ParseAnswer(vehiclePair.Value[1], answer);
                }

                setDataDictionary.Add(vehiclePair.Key, validAnswer);
            }

            Console.WriteLine(i_Garage.SetVehicleData(vehicle, setDataDictionary, carType));
        }
Example #2
0
        public static void Run()
        {
            Console.WriteLine("Welcome To the garage!");
            GarageLogic.GarageLogic garage = new GarageLogic.GarageLogic();
            StartAction(garage);
            string answer     = getAnswer();
            byte   byteAnswer = isValidAnswer(answer);

            while (byteAnswer == 0)
            {
                answer     = getAnswer();
                byteAnswer = isValidAnswer(answer);
            }

            while (byteAnswer == 1)
            {
                StartAction(garage);
                answer     = getAnswer();
                byteAnswer = isValidAnswer(answer);
                while (byteAnswer == 0)
                {
                    answer     = getAnswer();
                    byteAnswer = isValidAnswer(answer);
                }
            }

            Console.WriteLine("Have a nice day!");
        }
Example #3
0
        public static void StartAction(GarageLogic.GarageLogic i_Garage)
        {
            string stringAction = getAction();
            byte   action       = isValidAction(stringAction);

            while (action == 0)
            {
                stringAction = getAction();
                action       = isValidAction(stringAction);
            }

            if (action == 1)
            {
                EnterNewVehicle(i_Garage);
            }
            else if (action == 2)
            {
                string withOrWithoutFilter     = getWithOrWithoutFilter();
                byte   byteWithOrWithoutFilter = isValidFilter(withOrWithoutFilter);

                while (byteWithOrWithoutFilter == 0)
                {
                    withOrWithoutFilter     = getWithOrWithoutFilter();
                    byteWithOrWithoutFilter = isValidFilter(withOrWithoutFilter);
                }

                if (byteWithOrWithoutFilter == 1)
                {
                    string[] states = i_Garage.GetVehicleStates();
                    Console.WriteLine(states[0]);
                    string state      = Console.ReadLine();
                    object validState = ParseAnswer(states[1], state);

                    while (validState == null)
                    {
                        Console.WriteLine("Invalid type - {0} should be {1}", state, states[1]);
                        Console.WriteLine(states[0]);
                        state      = Console.ReadLine();
                        validState = UI.ParseAnswer(states[1], state);
                    }

                    Console.WriteLine(i_Garage.DisplayVehiclesLicenses(state));
                }
                else if (byteWithOrWithoutFilter == 2)
                {
                    Console.WriteLine(i_Garage.DisplayVehiclesLicenses());
                }
            }
            else
            {
                string licenseNumber      = getString("license number");
                bool   licenseNumberValid = isValidNumber(licenseNumber, "license number");

                while (!licenseNumberValid)
                {
                    licenseNumber      = getString("license number");
                    licenseNumberValid = isValidNumber(licenseNumber, "license number");
                }

                if (action == 3)
                {
                    string[] states = i_Garage.GetVehicleStates();
                    Console.WriteLine(states[0]);
                    string state      = Console.ReadLine();
                    object validState = ParseAnswer(states[1], state);

                    while (validState == null)
                    {
                        Console.WriteLine("Invalid type - {0} should be {1}", state, states[1]);
                        Console.WriteLine(states[0]);
                        state      = Console.ReadLine();
                        validState = UI.ParseAnswer(states[1], state);
                    }

                    Console.WriteLine(i_Garage.UpdateVehicleState(licenseNumber, state));
                }
                else if (action == 4)
                {
                    Console.WriteLine(i_Garage.InflateVehicleWheels(licenseNumber));
                }
                else if (action == 5)
                {
                    string[] fuelTypes = i_Garage.GetFuelTypes();
                    Console.WriteLine(fuelTypes[0]);
                    string fuelType      = Console.ReadLine();
                    object validFuelType = ParseAnswer(fuelTypes[1], fuelType);

                    while (validFuelType == null)
                    {
                        Console.WriteLine("Invalid type - {0} should be {1}", fuelType, fuelTypes[1]);
                        Console.WriteLine(fuelTypes[0]);
                        fuelType      = Console.ReadLine();
                        validFuelType = ParseAnswer(fuelTypes[1], fuelType);
                    }

                    string fuelAmount      = getString("fuel amount");
                    object fuelAmountValid = ParseAnswer("float", fuelAmount);

                    while (fuelAmountValid == null)
                    {
                        Console.WriteLine("Invalid type - {0} should be {1}", fuelAmount, "float");
                        fuelAmount      = getString("fuel amount");
                        fuelAmountValid = ParseAnswer("float", fuelAmount);
                    }

                    try
                    {
                        Console.WriteLine(i_Garage.FuelNormalVehicle(licenseNumber, fuelType, (float)fuelAmountValid));
                    }
                    catch (Exception e)
                    {
                        e.ToString();
                    }
                }
                else if (action == 6)
                {
                    string minutesToCharge      = getString("minutes to charge");
                    object minutesToChargeValid = ParseAnswer("float", minutesToCharge);

                    while (minutesToChargeValid == null)
                    {
                        Console.WriteLine("Invalid type - {0} should be {1}", minutesToCharge, "float");
                        minutesToCharge      = getString("minutes to charge");
                        minutesToChargeValid = ParseAnswer("float", minutesToCharge);
                    }

                    try
                    {
                        Console.WriteLine(i_Garage.ChargeElectricVehicle(licenseNumber, (float)minutesToChargeValid));
                    }
                    catch (Exception e)
                    {
                        e.ToString();
                    }
                }
                else if (action == 7)
                {
                    Console.WriteLine(i_Garage.DisplayVehicleData(licenseNumber));
                }
            }
        }