public static int TollCalculator(string plateNumber, List <ParkSlotModel> slots)
        {
            int      index         = slots.FindIndex(a => a.car.plateNumber == plateNumber);
            var      exitTime      = DateTime.Now;
            var      exitTtime     = new DateTime(exitTime.Year, exitTime.Month, exitTime.Day, exitTime.Hour, exitTime.Minute, 0);
            int      totalPrice    = 0;
            TimeSpan totalParkTime = exitTtime - slots[index].car.enterTime;

            slots[index].car.exitTime = DateTime.Now;
            ParkingMessages.ParkingTimeInformation(slots[index].car, totalParkTime);
            if (totalParkTime.TotalMinutes <= 60)
            {
                totalPrice = priceForHour;
            }
            else
            {
                TimeSpan time = TimeSpan.FromMinutes(totalParkTime.TotalMinutes);
                if (time.Minutes != 0)
                {
                    totalPrice = priceForHour + (extraPrice * (totalParkTime.Hours));
                }
                else
                {
                    totalPrice = priceForHour + (extraPrice * (totalParkTime.Hours - 1));
                }
            }
            ParkingMessages.TotalSumOfPay(slots[index].car, totalPrice);
            return(totalPrice);
        }
Exemple #2
0
 public void ViewParkedCar()
 {
     foreach (ParkSlotModel slot in slots)
     {
         if (!slot.isOccupied)
         {
             ParkingMessages.DisplayFreeSpaceText(slot.slotId);
         }
         else
         {
             CarMessages.DisplayParkedCars(slot.slotId, slot.car);
         }
     }
 }
Exemple #3
0
        public void DisplayParkedCars()
        {
            int parkedCar = 0;

            foreach (ParkSlotModel slot in slots)
            {
                if (slot.isOccupied)
                {
                    CarMessages.DisplayParkedCars(slot.slotId, slot.car);
                    parkedCar++;
                }
            }
            if (parkedCar == 0)
            {
                ParkingMessages.ParkEmpty();
            }
        }
Exemple #4
0
        public void GetFreeParkingLot()
        {
            int numberOfOcupatedSlots = 0;
            int numberOfFreeSlots     = 0;

            foreach (ParkSlotModel slot in slots)
            {
                if (slot.isOccupied == false)
                {
                    numberOfOcupatedSlots++;
                    ParkingMessages.DisplayFreeSpaceText(slot.slotId);
                }
                else
                {
                    numberOfFreeSlots++;
                }
            }
            ParkingMessages.TotalNumberOfFreeParkingLot(numberOfOcupatedSlots);
        }