public PagedResponse <MechanismDto> Execute(MechanismSearch search) { var query = _context.Mechanisms.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 <MechanismDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = _mapper.Map <List <MechanismDto> >(query.Skip(skipCount).Take(search.PerPage).ToList()) }; return(response); }
public IActionResult Get([FromQuery] MechanismSearch search, [FromServices] IGetMechanismsQuery query) { return(Ok(_executor.ExecuteQuery(query, search))); }