private void CheckOut()
        {
            #region Update Customer Total Using Time And Total Using Money
            if (cus != null)
            {
                var _lot = _parkingLotsList.Find(param => param.ID == "HCMUTEPL");
                cus.TotalUsingMoney += TotalPrice;
                cus.TotalUsingTime  += Math.Round((double)_timeDiff?.TotalHours, 2);
                if (cus.TotalUsingTime >= _lot.VIPRequiredTime)
                {
                    cus.isVIP = "Yes";
                }

                Task.WaitAll(Task.Run(async() => await _customersRepository.UpdateCustomerAsync(cus)));
            }
            #endregion

            #region Update Monthly Income

            MonthlyIncome monthlyIncome = _monthlyIncomesList.Find(param => param.ID == parking.CheckOutDateTime?.Month);

            monthlyIncome.Income += TotalPrice;

            Task.WaitAll(Task.Run(async() => await _monthlyIncomesRepository.UpdateMonthlyIncomeAsync(monthlyIncome)));


            #endregion

            #region Update Slot Availability

            var slot = _slotsList.Find(param => param.ID == parking.SlotID);

            slot.Availability = "Yes";

            Task.WaitAll(Task.Run(async() => await _slotsRepository.UpdateSlotAsync(slot)));

            #endregion

            #region Delete From Parking

            Task.WaitAll(Task.Run(async() => await _parkingsRepository.DeleteParkingAsync(parking)));

            #endregion

            MessageBox.Show("Customer has been checked out!", "Successful", MessageBoxButton.OK, MessageBoxImage.Asterisk);

            using (System.IO.StreamWriter file = new System.IO.StreamWriter("EventLog.txt", true))
            {
                string temp = CustomerID == String.Empty ? "null" : CustomerID;
                file.WriteLine("----------");
                file.WriteLine($"[CheckOut] - Date:{DateTime.Now.ToShortDateString()}; Time:{DateTime.Now.ToLongTimeString()}; License Plate:{CheckOutLicensePlate}; Slot:{slot.Name}; UserID:{temp}");
            }

            ClearTheView();
        }