public void ScheduleOccupation(CarOccupation occupation) { if (!IsFreeOnPeriod(occupation.Period)) { throw new CarIsUnvailableException("Can not schedule occupation on busy period"); } _occupations.Add(occupation); }
public CarOccupation GetLastOccupationOfType(OccupationStatus occupationStatus) { CarOccupation lastOccupation = null; foreach (var occupation in _occupations) { if (occupation.OccupationStatus == occupationStatus) { lastOccupation = occupation; } } return(lastOccupation); }
private int CountRentsAfterLastCheckup(CarOccupation lastCheckup) { var rentsCount = 0; if (lastCheckup == null) { return(rentsCount); } foreach (var occupation in CarSchedule.Occupations) { if (occupation.OccupationStatus == OccupationStatus.Rented && occupation.Period.IsLaterThan(lastCheckup.Period)) { rentsCount++; } } return(rentsCount); }