public async Task <IActionResult> Bookings([FromQuery] BookingsRequestModel requestModel) { try { if (requestModel.Take < 1) { return(BadRequest("Take must be greater than 0")); } var bookingResponse = await _bookingsService.GetBookings(requestModel); return(Ok(bookingResponse)); } catch (Exception ex) { if (_env.IsProduction()) { // log error return(BadRequest("Something went wrong.")); } else { return(BadRequest(ex.Message)); } } }
public async Task <BookingsResponseModel> GetBookings(BookingsRequestModel requestModel) { var responseModel = new BookingsResponseModel(); try { var query = _context.Bookings .Where(p => p.Schedule.Date == requestModel.Date.Date && requestModel.Status.Contains(p.Status.ToLower())) .OrderBy(p => p.Schedule); var test = _context.Bookings.ToList(); var bookings = await query .Skip(requestModel.Skip) .Take(requestModel.Take) .ToListAsync(); responseModel.Payload = bookings.Select(booking => new BookingResponseModel { Id = booking.Id, Customer = new CustomerResponseModel { Id = Guid.NewGuid(), Name = $"DC - {Guid.NewGuid().ToString().Substring(1, 5)}" }, Schedule = booking.Schedule, Status = booking.Status }).ToList(); responseModel.HasMore = (requestModel.Skip + requestModel.Take) < query.Count(); responseModel.Success = true; } catch (Exception ex) { // responseModel.Success = false; } return(responseModel); }