コード例 #1
0
        public async Task <IEnumerable <Booking> > GetBookingsAsync(BookingsResourceParameters bookingsResourceParameters)
        {
            if (bookingsResourceParameters == null)
            {
                throw new ArgumentNullException(nameof(bookingsResourceParameters));
            }

            if (bookingsResourceParameters.RoomId == null &&
                bookingsResourceParameters.ClientId == null &&
                bookingsResourceParameters.CurrentBookings == null)
            {
                return(await GetBookingsAsync());
            }

            var collection = _context.Bookings as IQueryable <Booking>;

            if (!(bookingsResourceParameters.RoomId == null))
            {
                collection = collection.Where(b => b.RoomId == bookingsResourceParameters.RoomId);
            }

            if (!(bookingsResourceParameters.ClientId == null))
            {
                collection = collection.Where(b => b.ClientId == bookingsResourceParameters.ClientId);
            }

            if (!(bookingsResourceParameters.CurrentBookings == null || bookingsResourceParameters.CurrentBookings == false))
            {
                collection = collection.Where(b => b.CheckOutDate.Date >= DateTime.Now.Date && b.CheckInDate.Date <= DateTime.Now.Date);
            }

            return(await collection.ToListAsync());
        }
コード例 #2
0
        public async Task <ActionResult <IEnumerable <BookingDTO> > > GetBookings([FromQuery] BookingsResourceParameters bookingsResourceParameters)
        {
            try
            {
                var bookings = await _bookingsRepository.GetBookingsAsync(bookingsResourceParameters);

                if (bookings != null && bookings.Any())
                {
                    return(Ok(_mapper.Map <IEnumerable <BookingDTO> >(bookings)));
                }
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }

            return(NotFound());
        }