Exemple #1
0
        public async Task SetBooked(IBookingPeriodOfTimeChecker checker)
        {
            CheckRule(new BookingOnStatusChangeMustHaveCorrectPreviousStatusRule(status, BookingStatus.Booked));
            CheckRule(new BookingRequestingCannotExceedTimeoutRule(requestedDate));
            await CheckRuleAsync(new RecordsOfProcessingBookingMustBeAvailableAsyncRule(this, bookedRecords, checker));

            status     = BookingStatus.Booked;
            bookedDate = DateTime.Now;
        }
Exemple #2
0
 internal async Task <bool> IsTermAvailable(BookingId bookingId, FacilityId facilityId, IBookingPeriodOfTimeChecker checker) =>
 await checker.IsRecordAvailable(bookingId, facilityId, employeeId, date, date.AddMinutes(durationInMinutes));
 public ProcessBookingRequestCommandHandler(IBookingRepository repository, IUnitOfWork unitOfWork, IBookingPeriodOfTimeChecker checker)
 {
     this.repository = repository;
     this.unitOfWork = unitOfWork;
     this.checker    = checker;
 }
Exemple #4
0
 public RecordsOfProcessingBookingMustBeAvailableAsyncRule(Booking booking, List <BookedRecord> records, IBookingPeriodOfTimeChecker checker)
 {
     this.booking = booking;
     this.records = records;
     this.checker = checker;
 }