public PagedResponse <KlijentSearchDto> Execute(KlijentSearch search)
        {
            var query = context.Klijenti.Include(x => x.Uloga).AsQueryable();


            if (!string.IsNullOrEmpty(search.ImeIliPrezimeKlijenta) || !string.IsNullOrWhiteSpace(search.ImeIliPrezimeKlijenta))
            {
                query = query.Where(x => x.Ime.ToLower().Contains(search.ImeIliPrezimeKlijenta.ToLower()) || x.Prezime.ToLower().Contains(search.ImeIliPrezimeKlijenta.ToLower()));
            }
            var skipCount = search.PerPage * (search.Page - 1);

            var response = new PagedResponse <KlijentSearchDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => new KlijentSearchDto
                {
                    Jmbg       = x.Jmbg,
                    Ime        = x.Ime,
                    Prezime    = x.Prezime,
                    Email      = x.Email,
                    IdUloga    = x.IdUloga,
                    NazivUloge = x.Uloga.NazivUloge,
                }).ToList()
            };

            return(response);
        }
예제 #2
0
 public IActionResult Get([FromQuery] KlijentSearch search, [FromServices] IGetKlijentiQuery query)
 {
     return(Ok(executor.ExecuteQuery(query, search)));
 }