Exemple #1
0
        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));
                }
            }
        }
Exemple #2
0
        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);
        }