Exemplo n.º 1
0
        public async Task Booking(BookingDto booking)
        {
            if (booking == null)
            {
                throw new ArgumentNullException(ErrorMessage.BookingDetailsIsEmpty);
            }
            var employeeId = await GetEmployeeDetails(booking);

            var roombookings = AutoMapper.Mapper.Map <IEnumerable <BookingDto> >(await _bookingRepository.GetAsync(booking.RoomId));
            var isAvailable  = _bookingValidation.IsRoomAvailable(roombookings, booking.StartDateTime, booking.EndDateTime);

            if (!isAvailable)
            {
                throw new Exception(ErrorMessage.RoomNotAvailable);
            }
            var bookingEntity = new Booking
            {
                EmployeeId = employeeId,
                RoomId     = booking.RoomId,
                StartTime  = booking.StartDateTime,
                EndTime    = booking.EndDateTime
            };
            await _bookingRepository.AddAsync(bookingEntity);

            await _bookingRepository.SaveAsync();
        }
Exemplo n.º 2
0
        public async Task <bool> CheckRoomAvailability(CheckBookingDto checkBooking)
        {
            var roomBookings = await _bookingRepository.GetAsync(checkBooking.RoomId);

            var roomBookingsDto = Mapper.Map <IEnumerable <BookingDto> >(roomBookings);
            var isAvailable     = _bookingValidation.IsRoomAvailable(roomBookingsDto, checkBooking.StartDateTime, checkBooking.EndDateTime);

            if (!isAvailable)
            {
                throw new Exception(ErrorMessage.RoomNotAvailable);
            }
            return(isAvailable);
        }