private void ShowAllPlateNumberByState()//function 2
        {
            string        CarStatus;
            eCarState     eVehicleStatus      = 0;
            List <string> PlateNumbersToPrint = new List <string>();

            System.Console.WriteLine("Whitch Car Status You Want To Search By? [For All(0) /InProcess(1) /Repaired(2) /Paid(3)]");
            CarStatus = System.Console.ReadLine();

            while (!IV.ValidInputStatusVehicle(CarStatus, ref eVehicleStatus))
            {
                if (CarStatus == "0")
                {
                    break;
                }
                CarStatus = System.Console.ReadLine();
            }

            if (CarStatus == "0")
            {
                GM.CreateListOfPlatesNumbers(ref PlateNumbersToPrint);
            }
            else
            {
                GM.CreatePlatesNumberByStatus(eVehicleStatus, ref PlateNumbersToPrint);
            }
            PrintListOfPlatesNumber(ref PlateNumbersToPrint);
        }
Beispiel #2
0
 public VehicleDetails(string i_OwnerName, string i_OwnerPhoneNumber, ref Vehicle io_Vehicle)
 {
     m_OwnerName        = i_OwnerName;
     m_OwnerPhoneNumber = i_OwnerPhoneNumber;
     m_Vehicle          = io_Vehicle;
     m_CarState         = eCarState.InProcess;
 }
        private List <string> getLicences(eCarState i_State, string i_VehicleType)
        {
            List <string> licencses = new List <string>();

            foreach (KeyValuePair <string, CustomerCard> currentCostumer in m_CostumerBook)
            {
                if (i_VehicleType == "All")
                {
                    licencses.Add(currentCostumer.Key);
                }
                else
                {
                    if (currentCostumer.Value.CarState == i_State)
                    {
                        licencses.Add(currentCostumer.Key);
                    }
                }
            }

            if (licencses.Count == 0)
            {
                licencses = null;
            }

            return(licencses);
        }
Beispiel #4
0
        public Elevator()
        {
            Console.Out.WriteLine($"Creating Elevator -> Floor is {CurrentFloor}, CarNumber is {CarNumber}");
            NumTrips = 0;

            CarState = eCarState.Waiting;
        }
 public CustomerCard(Vehicle i_Vehicle, string i_Name, string i_Phone)
 {
     m_Vehicle  = i_Vehicle;
     m_Name     = i_Name;
     m_Phone    = i_Phone;
     m_CarState = eCarState.InRepair;
 }
Beispiel #6
0
    public void SetCarState(eCarState state, Action onCompleteCallback = null)
    {
        CurrrentCarState = state;
        switch (state)
        {
        case eCarState.IDLE:
        {
            CarAnimator.SetBool("bounce", false);
            CarAnimator.SetBool("moving", false);
        }
        break;

        case eCarState.BOUNCE:
        {
            PlaySound(carStart);
            CarAnimator.SetBool("bounce", true);
            onAnimCompleteCallback = onCompleteCallback;
        }
        break;

        case eCarState.MOVING:
        {
            PlaySound(carRunning, true);
            CarAnimator.SetBool("moving", true);
        }
        break;

        default:
            break;
        }
    }
 public void CreatePlatesNumberByStatus(eCarState eVehicleStatus, ref List <string> io_ListOfPlateNumbers)//function 2. create List Of All the Relevant Plates Numbers by Status Of Vehicle
 {
     foreach (string plateNumber in m_DictionaryVehicles.Keys)
     {
         if (m_DictionaryVehicles[plateNumber].CarState == eVehicleStatus)
         {
             io_ListOfPlateNumbers.Add(plateNumber);
         }
     }
 }
Beispiel #8
0
    public void ResetCar(bool playCrashSound = true)
    {
        if (playCrashSound)
        {
            carSpeaker.PlayOneShot(carCrash);
        }

        gameObject.transform.position = startPosition;
        getReadyFlag.SetActive(true);
        readyCount      = 0;
        currentCarState = eCarState.GETREADY;
    }
        public List <string> GetVehiclesByState(string i_VehicleState)
        {
            eCarState     state           = eCarState.InRepair;
            List <string> licensesByState = null;

            if (i_VehicleState != "All")
            {
                state = FromStringToCarStateEnum(i_VehicleState);
            }
            licensesByState = getLicences(state, i_VehicleState);
            return(licensesByState);
        }
Beispiel #10
0
 void GetNextFloorInQueue()
 {
     if (FloorQueue.Any())
     {
         RequestedFloor = FloorQueue.Dequeue();
         Direction      = CurrentFloor < RequestedFloor ? eDirection.Up : eDirection.Down;
         CarState       = eCarState.Moving;
     }
     else
     {
         CarState = eCarState.Waiting;
     }
 }
Beispiel #11
0
        private void Move(long ticks)
        {
            Console.Out.WriteLine($"Car {CarNumber} Moving from floor {CurrentFloor} to {RequestedFloor}");
            MovingTime += ticks;
            if (MovingTime >= CarSpeedTicksPerFloor)
            {
                MovingTime = 0;

                if (CurrentFloor != RequestedFloor)
                {
                    CurrentFloor = Direction == eDirection.Up ? CurrentFloor + 1 : CurrentFloor - 1;
                }

                if (CurrentFloor == RequestedFloor || (FloorQueue.Any() && FloorQueue.Peek() == CurrentFloor))
                {
                    if (FloorQueue.Any() && FloorQueue.Peek() == CurrentFloor)
                    {
                        Console.Out.WriteLine($"Car {CarNumber} Arrived at floor {CurrentFloor}, Waiting ");
                        FloorQueue.Dequeue();
                    }
                    else
                    {
                        Console.Out.WriteLine($"Car {CarNumber} Arrived at floor {RequestedFloor}, Waiting ");
                    }


                    NumTrips++;
                    if (NumTrips >= 100)
                    {
                        SetService(false);
                    }
                    else
                    {
                        GetNextFloorInQueue();
                    }
                }
                else
                {
                    Console.Out.WriteLine($"Car {CarNumber} passing floor {CurrentFloor}  enroute to floor {RequestedFloor} ");
                    CarState = eCarState.Moving;
                }
            }
        }
Beispiel #12
0
        public void Think(long tickCounter)
        {
            switch (CarState)
            {
            case eCarState.OutOfService:
                DoService(tickCounter);
                break;

            case eCarState.Moving:
            {
                if (CurrentFloor == RequestedFloor)
                {
                    CarState = eCarState.Waiting;
                }
                Move(tickCounter);
                break;
            }

            case eCarState.Waiting:
            {
                break;
            }
            }
        }
Beispiel #13
0
 private void startRace()
 {
     getReadyFlag.SetActive(false);
     currentCarState = eCarState.MOVING;
 }
Beispiel #14
0
 public void WinRace()
 {
     carSpeaker.PlayOneShot(winRace);
     currentCarState = eCarState.WIN;
 }
Beispiel #15
0
 public void ChangeStatusOfVehicleByPlateNumber(string i_PlateNumber, eCarState i_Status) //change the status of the vehicle by the new status. function 3
 {
     m_DictionaryVehicles[i_PlateNumber].CarState = i_Status;
 }
Beispiel #16
0
        private void SetService(bool inService)
        {
            CarState = inService ? eCarState.Waiting : eCarState.OutOfService;

            Console.Out.WriteLine(inService ? $"Car {CarNumber} coming Into Service at floor {CurrentFloor}": $"Car {CarNumber} going out of service at floor {CurrentFloor} after {NumTrips} runs.");
        }
        public void ChangeCustomerVehicleState(CustomerCard i_Cutomer, string i_StateToChangeTo)
        {
            eCarState state = FromStringToCarStateEnum(i_StateToChangeTo);

            i_Cutomer.CarState = state;
        }
 public CustomerCard(Vehicle i_Vehicle)
 {
     m_Vehicle  = i_Vehicle;
     m_CarState = eCarState.InRepair;
 }