public void ValidateAutoRentalTotalCosts(IAutoRentalReservation reservation) { var pricePerDay = reservation.PricePerDay; if (pricePerDay < 0) { throw new AutoRentalCostException(); } }
public void ValidateAutoRentalUninsuredDriver(IAutoRentalReservation reservation) { var autoInsurance = reservation.AutoInsurance; if (autoInsurance == null) { throw new AutoRentalUninsuredDriverException(); } }
public void ValidateAutoRentalInsuranceExpiry(IAutoRentalReservation reservation) { var insurance = reservation.AutoInsurance; if (insurance.Expiration < DateTime.Now) { throw new AutoRentalExpiredInsuranceException(); } }
public void ValidateAutoRentalDestination(IAutoRentalReservation reservation) { var destination = reservation.Destination; if (string.IsNullOrWhiteSpace(destination)) { throw new InvalidDestinatinationException(); } }
public void ValidateAutoRentalUnlicensedDriver(IAutoRentalReservation reservation) { foreach (var driver in reservation.Drivers) { if (driver.DriversLicense == null) { throw new AutoRentalUnlicensedDriverException(); } } }
public void ValidateAutoRentalOriginAndDestination(IAutoRentalReservation reservation) { var destination = reservation.Destination; var origin = reservation.Origin; if ((!string.IsNullOrWhiteSpace(destination) || !string.IsNullOrWhiteSpace(origin)) && (string.Compare(origin, destination, StringComparison.OrdinalIgnoreCase) == 0)) { throw new InvalidAutoRentalOriginAndDestinationException(); } }
public void ValidateAutoRentalDriversLicenseExpiry(IAutoRentalReservation reservation) { var drivers = reservation.Drivers; foreach (var driver in drivers) { if (driver.DriversLicense.Expiration < DateTime.Now) { throw new AutoRentalExpiredLicenseException(); } } }
public void ValidateAutoRentalReservation(IAutoRentalReservation reservation) { var departureDate = reservation.DepartureDate; var returnDate = reservation.ReturnDate; if (returnDate.HasValue) { if (departureDate > returnDate.Value) { throw new DateRangeException(); } } }
public decimal CalculateTotalReservationFees(IAutoRentalReservation reservation) { decimal?totalFees = 0; _validation.ValidateAutoRentalReservation(reservation); _validation.ValidateAutoRentalTotalCosts(reservation); _validation.ValidateAutoRentalOriginAndDestination(reservation); _validation.ValidateAutoRentalDestination(reservation); _validation.ValidateAutoRentalFees(reservation); _validation.ValidateAutoRentalUnlicensedDriver(reservation); _validation.ValidateAutoRentalUninsuredDriver(reservation); _validation.ValidateAutoRentalDriversLicenseExpiry(reservation); _validation.ValidateAutoRentalInsuranceExpiry(reservation); totalFees = reservation.PricePerDay * (reservation.DropOffDate - reservation.PickUpDate).Days > 0 ? (reservation.DropOffDate - reservation.PickUpDate).Days : 1; return((decimal)totalFees); }
public void Cleanup() { al = null; lres = null; }
public void Initialize() { // TODO: Add test initialization code al = new AdventureAutoRental(); lres = new AutoRentalReservation(); }