public PagedResponse <GetPorudzbinaDto> Execute(PorudzbinaSearch search) { var upit = _context.Porudzbine.Include(x => x.DetaljiPorudzbina).Include(y => y.Korisnik).AsQueryable(); DateTime dateTime = new DateTime(); string datum = search.DatumPorudzbine.Date.ToString("yyyy-MM-dd"); if (search.DatumPorudzbine != dateTime) { upit = upit.Where(x => x.DatumPorudzbine.Date.ToString() == datum); } var preskokBrojenja = search.PoStrani * (search.Strana - 1); var odgovor = new PagedResponse <GetPorudzbinaDto> { TrenutnaStrana = search.Strana, StavkePoStranici = search.PoStrani, UkupniBrojStavki = upit.Count(), Stavke = upit.Skip(preskokBrojenja).Take(search.PoStrani).Select(x => new GetPorudzbinaDto { Adresa = x.Adresa, StatusPorudzbine = x.StatusPorudzbine, NacinPlacanja = x.NacinPlacanja, ImeKorisnika = x.Korisnik.Ime, PrezimeKorisnka = x.Korisnik.Prezime, Jmbg = x.Korisnik.Jmbg, NazivProizvoda = x.DetaljiPorudzbina.Select(x => x.NazivProizvoda), Kolicina = x.DetaljiPorudzbina.Select(x => x.Kolicina), Cena = x.DetaljiPorudzbina.Select(x => x.Cena) }).ToList() }; return(odgovor); }
public PagedResponse <PorudzbinaDto> Izvrsi(PorudzbinaSearch search) { var query = _context.Porudzbine .Include(x => x.Korisnik) .Include(x => x.StavkaPorudzbine).AsQueryable(); if (!string.IsNullOrEmpty(search.Adresa) || !string.IsNullOrWhiteSpace(search.Adresa)) { query = query.Where(x => x.Adresa.ToLower().Contains(search.Adresa.ToLower())); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <PorudzbinaDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new PorudzbinaDto { Adresa = x.Adresa, VremePorudzbine = x.VremePorudzbine, StavkePorudzbine = x.StavkaPorudzbine.Select(sp => new DohvatiStavkuPorudzbineDto { Id = sp.Id, Naziv = sp.Naziv, Kolicina = sp.Kolicina, Cena = sp.Cena }) }).ToList() }; return(response); }
public PagedResponse <PorudzbinaSearchDatumDto> Execute(PorudzbinaSearch search) { var query = context.Porudzbine.Include(x => x.DetaljiPorudzbina).AsQueryable(); if (search.DatumP != new DateTime()) { query = query.Where(x => x.DatumPorudzbine.Date.ToString() == search.DatumP.Date.ToString("yyyy-MM-dd")); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <PorudzbinaSearchDatumDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new PorudzbinaSearchDatumDto { Adresa = x.Adresa, ImeKlijenta = x.Klijent.Ime, PrezimeKlijenta = x.Klijent.Prezime, NazivProizvoda = x.DetaljiPorudzbina.Select(x => x.Naziv), PorudzbinaStatus = x.PorudzbinaStatus, Kolicine = x.DetaljiPorudzbina.Select(x => x.Kolicina), Cene = x.DetaljiPorudzbina.Select(x => x.Cena) }).ToList() }; return(response); }
public IActionResult Get([FromQuery] PorudzbinaSearch search, [FromServices] IGetPorudzbineQuery query) { return(Ok(_excutor.ExecuteQuery(query, search))); }