public PagedResponse <GenreDto> Execute(GenreSerach search) { var query = _context.Genres.AsQueryable(); if (!string.IsNullOrEmpty(search.Name) || !string.IsNullOrWhiteSpace(search.Name)) { query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower())); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <GenreDto> { TotalCount = query.Count(), CurrentPage = search.Page, ItemsPerPage = search.PerPage, Items = query.Skip(skipCount) .Take(search.PerPage) .Select(x => new GenreDto { Id = x.Id, Name = x.Name }).ToList() }; return(response); }
public IActionResult Get( [FromQuery] GenreSerach search, [FromServices] IGetGenresQuery query) { var result = _executor.ExecuteQuery(query, search); return(Ok(result)); }