public void Remove(ParkedCar removedCar) { if (removedCar == null) { return; } _carsInParking.Remove(removedCar); var totalSecondsInParking = (DateTime.Now - removedCar.InitialParkingTime).Value.TotalSeconds; var paidCar = new LeavedCar() { Client = removedCar.Client, TotalSecondsInParking = totalSecondsInParking }; if (totalSecondsInParking > AppSettings.FreePeriodInSeconds) { var amount = AppSettings.PricePerSeconds * (totalSecondsInParking - AppSettings.FreePeriodInSeconds); Console.WriteLine($"{removedCar.Client.FirstName}, Вы пробыли на парковке {totalSecondsInParking:f0} секунд. Ваш счёт: {amount:f2}$"); ParkingManager.Pay(removedCar.Client, amount); } else { Console.WriteLine($"Вы успели уехать в бесплатный период. Хорошего дня, {removedCar.Client.FirstName}!"); } ReportDay.LeavedCars.Add(paidCar); }
public void Add(ParkedCar parkedCar) { _carsInParking.Add(parkedCar); parkedCar.Id = GetFreeID(); parkedCar.InitialParkingTime = DateTime.Now; ReportDay.CarsPerDay.Add(parkedCar); }
public async Task <ParkingLot> Execute(string code, string plate, DateTime date) { var parkingLot = await _parkingLotRepository.GetParkingLot(code); var parkedCar = new ParkedCar(code, plate, date); if (!parkingLot.IsOpen(parkedCar.Date)) { throw new Exception("The parking lot is closed"); } if (parkingLot.IsFull()) { throw new Exception("The parking lot is full"); } await _parkingLotRepository.SaveParkedCar(parkedCar.Code, parkedCar.Plate, parkedCar.Date); return(parkingLot); }
private static void AddCarToParking(ParkedCar parkedCar, ParkingManager parkingManager) { if (parkingManager.GetCountFreeCarPlaces() <= 0) { Console.Clear(); Console.WriteLine($"К сожалению, все места на парковке заняты, {parkedCar.Client.FirstName} уезжает на своей {parkedCar.Car.Make} на другую парковку"); return; } var timerStartTimeSpan = DateTime.Now.AddSeconds(AppSettings.FreePeriodInSeconds) - DateTime.Now; var notify = new TimerCallback(Notify); var timer = new Timer(notify, parkedCar.Client, timerStartTimeSpan, Timeout.InfiniteTimeSpan); parkingManager.Add(parkedCar); Console.Clear(); Console.WriteLine($"На парковку заехала машина: {parkedCar}"); }
public void Remove(ParkedCar removedCar) { _parking.Remove(removedCar); }
public void Add(ParkedCar addedCar) { _parking.Add(addedCar); }