public PagedResponse <UlogaDto> Execute(UlogaSearch search) { var query = context.Uloge.AsQueryable(); if (!string.IsNullOrEmpty(search.NazivUloge) || !string.IsNullOrWhiteSpace(search.NazivUloge)) { query = query.Where(x => x.NazivUloge.ToLower().Contains(search.NazivUloge.ToLower())); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <UlogaDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new UlogaDto { NazivUloge = x.NazivUloge }).ToList() }; return(response); }
public PagedResponse <UlogaWithIdDto> Execute(UlogaSearch search) { var upit = _context.Uloge.AsQueryable(); if (!string.IsNullOrEmpty(search.Naziv) || !string.IsNullOrWhiteSpace(search.Naziv)) { upit = upit.Where(x => x.Naziv.ToLower().Contains(search.Naziv.ToLower())); } var preskokBrojenja = search.PoStrani * (search.Strana - 1); var odgovor = new PagedResponse <UlogaWithIdDto> { TrenutnaStrana = search.Strana, StavkePoStranici = search.PoStrani, UkupniBrojStavki = upit.Count(), Stavke = upit.Skip(preskokBrojenja).Take(search.PoStrani).Select(x => new UlogaWithIdDto { IdUloga = x.Id, Naziv = x.Naziv }).ToList() }; return(odgovor); }
public IActionResult Get([FromQuery] UlogaSearch search, [FromServices] IGetUlogeQuery query) { return(Ok(executor.ExecuteQuery(query, search))); }