示例#1
0
        // Helper for printing vehicle list.
        private static void PrintVehicleList(GarageManager i_GarageManager)
        {
            Console.WriteLine("choose what vehicle list you wish to print:\n" +
                              "(1) In repair\t(2) Repaired\t(3) Payed\t(4) All-not filterd");
            string inputListStr = Console.ReadLine();

            switch (inputListStr)
            {
            case "1":
                i_GarageManager.PrintFilteredVehicleList(eVehicleStatus.InRepair);
                break;

            case "2":
                i_GarageManager.PrintFilteredVehicleList(eVehicleStatus.Repaired);
                break;

            case "3":
                i_GarageManager.PrintFilteredVehicleList(eVehicleStatus.Piad);
                break;

            default:
                i_GarageManager.PrintVehicleList();
                break;
            }
        }
示例#2
0
        public static void Main()
        {
            GarageManager   LogicManager = new GarageManager();
            GarageConsoleUI Mygarager    = new GarageConsoleUI(LogicManager);

            Mygarager.RunGarageProgram();
        }
示例#3
0
        public static void Main(string[] args)
        {
            Garage        newGarage        = new Garage();
            GarageManager newGarageManager = new GarageManager(newGarage);

            newGarageManager.Service();
        }
示例#4
0
        // Update the vehicle Status;
        private static void UpdateVehicleStatus(GarageManager i_GarageManager)
        {
            string VehicleLicenseNum = getNewLicenseNum();
            int    indexOnList       = i_GarageManager.IndexOfVehicle(VehicleLicenseNum);

            if (indexOnList == -1)
            {
                Console.WriteLine("Vehicle L.N " + VehicleLicenseNum + " is not in the garage ");
            }
            else
            {
                Console.WriteLine("choose the status you wish to update vehicle :\n" +
                                  "(1)In repair  " + "(2)Repaired  " + "(3)Payed  " + "(any other key)other");
                string inputListStr = Console.ReadLine();
                switch (inputListStr)
                {
                case "1":
                    i_GarageManager.UpdateVehicleStatus(VehicleLicenseNum, eVehicleStatus.InRepair);
                    break;

                case "2":
                    i_GarageManager.UpdateVehicleStatus(VehicleLicenseNum, eVehicleStatus.Repaired);
                    break;

                case "3":
                    i_GarageManager.UpdateVehicleStatus(VehicleLicenseNum, eVehicleStatus.Piad);
                    break;

                default:

                    // Do nothing , open for future options.
                    break;
                }
            }
        }
示例#5
0
        internal void Run()
        {
            eInstructionOption currentInstreuction;
            int    nextInstruction = 0;
            string garageName;

            garageName     = Comunicator.GreetUser();
            this.m_Manager = new GarageManager(garageName);
            while (true)
            {
                try
                {
                    nextInstruction = Comunicator.GetInstructionFromUser();
                    switch (nextInstruction)
                    {
                    case 1:
                        this.m_Manager.AddNewVehicle();
                        Printer.PrintUpdateSuccessfully(eInstructionOption.AddNewVehicle);
                        break;

                    case 2:
                        this.m_Manager.FillEnergyInVehicle();
                        Printer.PrintUpdateSuccessfully(eInstructionOption.FuelOrChargeVehicle);
                        break;

                    case 3:
                        this.m_Manager.CheckVehicleState();
                        break;

                    case 4:
                        this.m_Manager.ChangeVehicleState();
                        Printer.PrintUpdateSuccessfully(eInstructionOption.ChangeVehicleState);
                        break;

                    case 5:
                        this.m_Manager.InflateWheels();
                        Printer.PrintUpdateSuccessfully(eInstructionOption.InflateWheels);
                        break;

                    case 6:
                        this.m_Manager.GetVehicleDetails();
                        break;

                    case 7:
                        this.m_Manager.ShowLicencePlatesInGarageByFilter();
                        break;

                    default:
                        Printer.PrintBadChosenOptionMessage();
                        break;
                    }
                }
                catch (FormatException e)
                {
                    Printer.PrintMessage(e.Message);
                }
            }
        }
示例#6
0
        private int getEnumValue(string i_question, Type i_enumType)
        {
            Console.WriteLine(i_question);
            string enumTypeString = GarageManager.PrintEnumValues(i_enumType);

            Console.WriteLine(enumTypeString);

            return(getValidInputForIntVarriable(k_MinIndexForEnums, Enum.GetValues(i_enumType).Length));
        }
        internal void Run()
        {
            int instructionIndex = 0;

            this.m_Manager = new GarageManager();

            while (true)
            {
                try
                {
                    instructionIndex = ChatBot.GreetUser();
                    switch (instructionIndex)
                    {
                    case 1:
                        this.m_Manager.AddNewVehicle();
                        break;

                    case 2:
                        this.m_Manager.PrintLicencePlatesInGarageByFilter();
                        break;

                    case 3:
                        this.m_Manager.ChangeVehicleStatus();
                        break;

                    case 4:
                        this.m_Manager.InflateWheels();
                        break;

                    case 5:
                        this.m_Manager.FillEnergyInVehicle(true);     // For fuel
                        break;

                    case 6:
                        this.m_Manager.FillEnergyInVehicle(false);     // For electric
                        break;

                    case 7:
                        this.m_Manager.GetVehicleDetails();
                        break;

                    default:
                        Console.WriteLine("You didn't choose a valid option");
                        break;
                    }
                }
                catch (FormatException e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
示例#8
0
        public static void Main()
        {
            VehicleInitialDetails setup = CreateNewSetup();

            GarageManager gm     = new GarageManager();
            bool          exists = gm.CheckIfVehicleExists("12221C");

            gm.AddNewVehicle(setup);
            exists = gm.CheckIfVehicleExists("12221C");
            gm.ChangeVehicleRepairState("12221C", eRepairState.Fixed);
            gm.FillTyrePressure("12221C");
            gm.RefuelVehicle("12221C", Fuel.eFuelType.Octan98, 30f);
        }
示例#9
0
        // Printing vehicle info
        private static void PrintVehicleInfo(GarageManager i_GarageManager)
        {
            string VehicleLicenseNum = getNewLicenseNum();
            int    indexOnList       = i_GarageManager.IndexOfVehicle(VehicleLicenseNum);

            if (indexOnList == -1)
            {
                Console.WriteLine("Vehicle L.N " + VehicleLicenseNum + " is not in the garage so we can't print his info");
            }
            else
            {
                i_GarageManager.PrintVehicleInfo(VehicleLicenseNum);
            }
        }
示例#10
0
        private void ShowLicensePlates()
        {
            StringBuilder filterMessage = new StringBuilder();

            filterMessage.Append(string.Format("{0}0-No filter ", GarageManager.PrintEnumValues(typeof(ClientData.eVehicleStatusInGarage)), Environment.NewLine));
            Console.WriteLine(filterMessage);
            int userInput = getValidInputForIntVarriable(0, Enum.GetValues(typeof(ClientData.eVehicleStatusInGarage)).Length);

            List <string> licenses = m_GarageManager.GetLicensePlatesAccordingToStatus(userInput);

            foreach (string license in licenses)
            {
                Console.WriteLine(license);
            }

            Console.WriteLine(k_SuccessMessage);
        }
        public static void CheckIfRepowerArgsExceptions(string i_LicensePlate, float i_RepowerAmount, bool i_IsFuelEngine, GarageManager i_GarageManager, string i_MainClientLicensePlate, FueledEngine.eFuelType i_FuelType = FueledEngine.eFuelType.None)
        {
            GarageClient o_Client = null;

            GarageClient.SingleVehicleInfo o_InnerDict = null;
            if (i_GarageManager.m_GarageDictonary.TryGetValue(i_MainClientLicensePlate, out o_Client))
            {
                if (!o_Client.m_Vehicles.TryGetValue(i_LicensePlate, out o_InnerDict))
                {
                    throw new Exception("license plate was not found in the garage");
                }
            }

            if (o_InnerDict.m_Vehicle.m_Engine.GetEngineType() == Engine.eEngineType.Electric && i_IsFuelEngine)
            {
                throw new Exception("vehicle cannot be charged because it is not a fueled vehicle");
            }

            if (o_InnerDict.m_Vehicle.m_Engine.GetEngineType() == Engine.eEngineType.Fuel && !i_IsFuelEngine)
            {
                throw new Exception("vehicle cannot be charged because it is not an electric vehicle");
            }

            if (i_RepowerAmount > o_InnerDict.m_Vehicle.m_Engine.getMaxPowerAmount())
            {
                if (i_IsFuelEngine)
                {
                    throw new Exception("Fuel amount requested is greater than the fuel tank capacity");
                }
                else
                {
                    throw new Exception("charge time requested is greater than the max charge time possible");
                }
            }

            if (o_InnerDict.m_Vehicle.m_Engine is FueledEngine)
            {
                FueledEngine currentFueledEngine = (FueledEngine)o_InnerDict.m_Vehicle.m_Engine;
                if (currentFueledEngine.GetFuelType() != i_FuelType)
                {
                    throw new Exception(string.Format("Fuel type requested, does not match the fuel type of this vehicle ({0}).", currentFueledEngine.GetFuelType()));
                }
            }
        }
示例#12
0
 public GarageConsoleUI(GarageManager i_LogicManager)
 {
     this.m_LogicManager = i_LogicManager;
 }
示例#13
0
 internal UserInterface()
 {
     m_Garage = new GarageManager();
 }
示例#14
0
 public UI()
 {
     r_GarageManager = new GarageManager();
     r_Screens       = getScreens();
 }
示例#15
0
 public UserInterface()
 {
     m_GarageManager   = new GarageManager();
     m_InputValidation = new InputValidation();
 }
示例#16
0
文件: Proram.cs 项目: YoniME/DN-EX3
        public static void Main()
        {
            GarageManager garageManagment = new GarageManager();

            garageManagment.OpenGarage();
        }
示例#17
0
 public ApplicationManager()
 {
     m_GarageManager = new GarageManager();
 }
示例#18
0
 public UI()
 {
     this.m_GarageManager = new GarageManager();
     this.m_CurrentClient = null;
 }
示例#19
0
        public static void Main()
        {
            GarageManager myGarage = new GarageManager();

            myGarage.start();
        }
示例#20
0
        static void Main()
        {
            GarageManager myGarage = new GarageManager();

            myGarage.Run();
        }
        public static GarageManager.eSupportedVehciles ParseVehicleTypeInput(string i_Input, GarageManager i_GarageManager)
        {
            GarageManager.eSupportedVehciles vehicleTypeInput = 0;
            GarageManager.eSupportedVehciles typeOfInput      = 0;
            try
            {
                typeOfInput = (GarageManager.eSupportedVehciles)Enum.Parse(typeof(GarageManager.eSupportedVehciles), i_Input);
            }
            catch
            {
                throw new FormatException("Invalid input, must be a valid vehicle");
            }

            switch (typeOfInput)
            {
            case GarageManager.eSupportedVehciles.ElectricBike:
                vehicleTypeInput = GarageManager.eSupportedVehciles.ElectricBike;
                break;

            case GarageManager.eSupportedVehciles.ElectricCar:
                vehicleTypeInput = GarageManager.eSupportedVehciles.ElectricCar;
                break;

            case GarageManager.eSupportedVehciles.FueledBike:
                vehicleTypeInput = GarageManager.eSupportedVehciles.FueledBike;
                break;

            case GarageManager.eSupportedVehciles.FueledCar:
                vehicleTypeInput = GarageManager.eSupportedVehciles.FueledCar;
                break;

            case GarageManager.eSupportedVehciles.Truck:
                vehicleTypeInput = GarageManager.eSupportedVehciles.Truck;
                break;

            default:
                throw new FormatException("Invalid input, you must enter a number (1-5) represting a supported vehicle");
            }

            return(vehicleTypeInput);
        }
示例#22
0
 // Constractor for UIManager.
 public UIManager()
 {
     m_GarageManager = new GarageManager();
 }
示例#23
0
        private void ChangeVehicleStatus()
        {
            string changeStatusMessage = string.Format("Please Enter a Licance number");
            string licensePlate;

            if (SearchVehicle(changeStatusMessage, out licensePlate))
            {
                int    maxStatusNumber = Enum.GetValues(typeof(ClientData.eVehicleStatusInGarage)).Length;
                string statusMessage   = string.Format("Please enter a new status to update{0} {1}", Environment.NewLine, GarageManager.PrintEnumValues(typeof(ClientData.eVehicleStatusInGarage)));
                Console.WriteLine(statusMessage);
                int userInput = getValidInputForIntVarriable(1, maxStatusNumber);
                m_GarageManager.ChangeStatusOfVehicle(licensePlate, (ClientData.eVehicleStatusInGarage)userInput);
                Console.WriteLine(k_SuccessMessage);
            }
        }
示例#24
0
        private void RefuelVehicle()
        {
            try
            {
                string refuelVehicleMessage = "Enter a license number for a vehicle to refuel";
                string licensePlate;
                if (SearchVehicle(refuelVehicleMessage, out licensePlate))
                {
                    Vehicle customerVehicle = m_GarageManager.FindClient(licensePlate).vehicle;
                    if (customerVehicle.engine is FuelEngine)
                    {
                        int    numOfFuelTypes  = Enum.GetValues(typeof(FuelEngine.eFuelType)).Length;
                        string fuelTypeMessage = string.Format("Which fuel type should we use?{0}{1}", Environment.NewLine, GarageManager.PrintEnumValues(typeof(FuelEngine.eFuelType)));
                        Console.WriteLine(fuelTypeMessage);
                        int    userInputForFuelType  = getValidInputForIntVarriable(1, numOfFuelTypes);
                        string amountTorefillMessage = "How much fuel do you wish to add?";
                        Console.WriteLine(amountTorefillMessage);
                        float amountToRefull;
                        while (!float.TryParse(Console.ReadLine(), out amountToRefull))
                        {
                            Console.WriteLine(k_InvalidRangeMessage);
                        }

                        m_GarageManager.RefuelSpecificVehicle(licensePlate, (FuelEngine.eFuelType)userInputForFuelType, amountToRefull);
                        Console.WriteLine(k_SuccessMessage);
                    }

                    else
                    {
                        Console.WriteLine(k_WrongEngineMessage);
                    }
                }
            }
            catch (ValueOutOfRangeException)
            {
                Console.WriteLine("Wrong amount to refuel, the amount entered was too much");
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Wrong fuel type entered");
            }
        }
示例#25
0
 public static void Main()
 {
     s_GarageManager = new GarageManager();
     startNewService();
 }
示例#26
0
 public GarageUi()
 {
     r_CurrentGarage = new GarageManager();
 }
示例#27
0
 public GarageConsoleUI()
 {
     r_GarageManager         = new GarageManager();
     Console.ForegroundColor = ConsoleColor.White;
     m_SystemStatus          = eSystemStatus.On;
 }
示例#28
0
        // The main method that run our garage
        public void StartService()
        {
            GarageManager newGarageManager = this.m_GarageManager;
            bool          isDone           = false;

            while (isDone == false)
            {
                // User choose the service he wish for.
                eService serviceOptionChoose = ServiceOptionChoose(newGarageManager.m_ServiceList);
                switch (serviceOptionChoose)
                {
                case eService.AddVehical:
                    string VehicleLicenseNum = getNewLicenseNum();
                    int    indexOnList       = newGarageManager.IndexOfVehicle(VehicleLicenseNum);
                    if (indexOnList != -1)
                    {
                        Console.WriteLine("Vehicle L.N " + VehicleLicenseNum +
                                          " is allready in the garage and his status is " + newGarageManager.VehicleList[indexOnList].VehicleStatus);
                    }
                    else
                    {
                        newGarageManager.VehicleList.Add(GetNewVehicleStatusInfo(VehicleLicenseNum));
                    }

                    break;

                case eService.PrintVehicalList:
                    PrintVehicleList(newGarageManager);
                    break;

                case eService.UpdateVehicleStatus:
                    UpdateVehicleStatus(newGarageManager);
                    break;

                case eService.FillAirInWheels:
                    string licenseOfVehicleToFillAir = getNewLicenseNum();
                    if (newGarageManager.IsInGarage(licenseOfVehicleToFillAir))
                    {
                        newGarageManager.FillAir(licenseOfVehicleToFillAir);
                        Console.WriteLine("We filled your wheels with air !");
                    }
                    else
                    {
                        Console.WriteLine("No such vehicle in the garage with this License number");
                    }

                    break;

                case eService.FuelUpTank:
                    string licenseNumberForFuel = getNewLicenseNum();
                    if (newGarageManager.IsInGarage(licenseNumberForFuel))
                    {
                        Vehicle vehicleToFuel = newGarageManager.VehicleList[newGarageManager.IndexOfVehicle(licenseNumberForFuel)].Vehicle;
                        if (vehicleToFuel.EngineEnergyType != eEnergyType.Electricity)
                        {
                            eEnergyType energyTypeToFuel = getEnergyType();
                            float       fuelToFill       = ChooseNumOf("of fuel amount");
                            newGarageManager.AddEnergy(licenseNumberForFuel, energyTypeToFuel, fuelToFill);
                        }
                        else
                        {
                            Console.Write("we are sorry but we cannot feul up a the vehicle with fuel since he use battery ! send him to charging.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("No such vehicle in the garage with this License number");
                    }

                    break;

                case eService.ChargeUpBattery:
                    string licenseNumberForCharge = getNewLicenseNum();
                    if (newGarageManager.IsInGarage(licenseNumberForCharge))
                    {
                        Vehicle vehicleToCharge = newGarageManager.VehicleList[newGarageManager.IndexOfVehicle(licenseNumberForCharge)].Vehicle;
                        if (vehicleToCharge.EngineEnergyType == eEnergyType.Electricity)
                        {
                            eEnergyType energyTypeToFuel = eEnergyType.Electricity;
                            float       batteryToCharge  = ChooseNumOf("of battery time to charge");
                            newGarageManager.AddEnergy(licenseNumberForCharge, energyTypeToFuel, batteryToCharge);
                        }
                        else
                        {
                            Console.Write("we are sorry but we cannot Charge up a the motoric vehcile since he use Fuel ! send him to fueling tank.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("No such vehicle in the garage with this License number");
                    }

                    break;

                case eService.PrintVehicleInfo:
                    PrintVehicleInfo(newGarageManager);
                    break;

                case eService.Done:
                    Console.WriteLine("Thanks for using our service, have a nice day and good bye!");
                    isDone = true;
                    break;

                default:
                    Console.WriteLine("Please choose a valide option from our service");
                    break;
                }

                Console.WriteLine("\n\n");
            }
        }
示例#29
0
        public static void Main()
        {
            GarageManager manager = new GarageManager();

            manager.Start();
        }
 public UserInterface()
 {
     GM = new GarageManager();
 }