public PagedResponse <ProjectionQueryDto> Execute(ProjectionSearch search) { var query = _context.Projections.Include(x => x.Movie).Include(x => x.Festival).ThenInclude(x => x.Place).AsQueryable(); if (!string.IsNullOrEmpty(search.MovieName) && !string.IsNullOrWhiteSpace(search.MovieName)) { query = query.Where(x => x.Movie.Name.ToLower().Contains(search.MovieName.ToLower())); } if (search.LocationID is int) { query = query.Where(x => x.Hall.LocationID == search.LocationID); } if (search.FestivalID is int) { query = query.Where(x => x.FestivalID == search.FestivalID); } if (search.HallID is int) { query = query.Where(x => x.HallID == search.HallID); } if (search.MovieID is int) { query = query.Where(x => x.MovieID == search.MovieID); } return(query.Paged <ProjectionQueryDto, Projection>(search, _mapper)); }
public IActionResult Get([FromQuery] ProjectionSearch search, [FromServices] IGetProjectionsQuery query) { return(Ok(_executor.ExecuteQuery(query, search))); }