Beispiel #1
0
        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);
        }