public PagedResponse <MovieReservationDto> Execute(ReservationSearch search) { var query = context.MovieReservations.Include(r => r.Movie).Include(r => r.User) .AsQueryable(); var skipCount = search.PerPage * (search.Page - 1); //Page == 1 var reponse = new PagedResponse <MovieReservationDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new MovieReservationDto { MovieId = x.MovieId, UserId = x.UserId , Movie = new MovieDto { Title = x.Movie.Title, Description = x.Movie.Description, OnStock = x.Movie.OnStock, ReleaseDate = x.Movie.ReleaseDate, RuntimeMinutes = x.Movie.RuntimeMinutes, DirectorId = x.Movie.DirectorId } }).ToList() }; return(reponse); }
public async Task <List <Reservation> > Search(ReservationSearch search) { var query = _dbContext.Reservations.AsNoTracking().AsQueryable(); if (search.State.HasValue) { query = query.Where(r => r.State == search.State); } if (search.CarId.HasValue) { query = query.Where(r => r.CarId == search.CarId.Value); } if (search.DurationInDays.HasValue) { query = query.Where(r => r.DurationInDays == search.DurationInDays.Value); } if (search.CustomerId.HasValue) { query = query.Where(r => r.CustomerId == search.CustomerId.Value); } if (search.TotalCost.HasValue) { query = query.Where(r => r.TotalCost == search.TotalCost.Value); } return(await query.OrderBy(r => r.State).ToListAsync()); }
public ActionResult <IEnumerable <ReservationGetDTO> > Get([FromQuery] ReservationSearch request) { try { var response = _getReservationsCommmand.Execute(request); return(Ok(response)); } catch { return(StatusCode(500, "Server error, try later")); } }
public async Task <List <ReservationDto> > Search(ReservationSearch search) { List <Reservation> reservationList; if (!search.State.HasValue && !search.CarId.HasValue && !search.CustomerId.HasValue && !search.TotalCost.HasValue && !search.DurationInDays.HasValue) { reservationList = await _repository.GetAllAsync(); } else { reservationList = await _repository.Search(search); } var reservationListDtos = new List <ReservationDto>(); reservationList.ForEach(r => { reservationListDtos.Add(Reservation.ToDto(r)); }); return(reservationListDtos); }
public IActionResult Get([FromQuery] ReservationSearch search, [FromServices] IGetReservationQuery query) { return(Ok(executor.ExecuteQuery(query, search))); }