Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class BookingHelper
- {
- public static string OverlappingBookingsExist(Booking booking, IBookingRepository bookingRepository)
- {
- if (booking.Status == "Cancelled")
- return string.Empty;
- var bookings = bookingRepository.GetActiveBookings(booking.Id);
- var overlappingBooking =
- bookings.FirstOrDefault(
- b =>
- booking.ArrivalDate < b.DepartureDate
- && b.ArrivalDate < booking.DepartureDate
- );
- return overlappingBooking == null ? string.Empty
- : overlappingBooking.Reference;
- }
- }
- public class BookingRepository : IBookingRepository
- {
- public IQueryable<Booking> GetActiveBookings(int? excludedBookingId = null)
- {
- var unitOfWork = new UnitOfWork();
- var bookings =
- unitOfWork.Query<Booking>()
- .Where(
- b => b.Id != excludedBookingId && b.Status != "Cancelled");
- return bookings;
- }
- }
- public interface IBookingRepository
- {
- IQueryable<Booking> GetActiveBookings(int? excludedBookingId = null);
- }
- public class UnitOfWork
- {
- public IQueryable<T> Query<T>()
- {
- return new List<T>().AsQueryable();
- }
- }
- public class Booking
- {
- public string Status { get; set; }
- public int Id { get; set; }
- public DateTime ArrivalDate { get; set; }
- public DateTime DepartureDate { get; set; }
- public string Reference { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement