public PagedResponse <KorisnikDto> Izvrsi(KorisnikSearch search) { var query = _context.Korisnici.AsQueryable(); if (!string.IsNullOrEmpty(search.Ime) || !string.IsNullOrWhiteSpace(search.Ime)) { query = query.Where(x => x.Ime.ToLower().Contains(search.Ime.ToLower())); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <KorisnikDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new KorisnikDto { Id = x.Id, KorisnickoIme = x.KorisnickoIme, Ime = x.Ime, Prezime = x.Prezime, Email = x.Email, Lozinka = x.Lozinka, GrupaId = x.GrupaId }).ToList() }; return(response); }
public PagedResponse <GetKorisnikDto> Execute(KorisnikSearch search) { var upit = _context.Korisnici.Include(x => x.Uloga).AsQueryable(); if (!string.IsNullOrEmpty(search.SearchZaKorisnike) || !string.IsNullOrWhiteSpace(search.SearchZaKorisnike)) { upit = upit.Where(x => x.Ime.ToLower().Contains(search.SearchZaKorisnike.ToLower()) || x.Prezime.ToLower().Contains(search.SearchZaKorisnike.ToLower())); } var preskokBrojenja = search.PoStrani * (search.Strana - 1); var odgovor = new PagedResponse <GetKorisnikDto> { TrenutnaStrana = search.Strana, StavkePoStranici = search.PoStrani, UkupniBrojStavki = upit.Count(), Stavke = upit.Skip(preskokBrojenja).Take(search.PoStrani).Select(x => new GetKorisnikDto { Id = x.Id, Ime = x.Ime, Prezime = x.Prezime, Jmbg = x.Jmbg, Email = x.Email, NazivUloge = x.Uloga.Naziv }).ToList() }; return(odgovor); }
public IActionResult Get([FromQuery] KorisnikSearch search, [FromServices] IGetKorisniciQuery query) { return(Ok(excutor.ExecuteQuery(query, search))); }