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);
        }
Example #2
0
        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);
        }
Example #4
0
 public IActionResult Get([FromQuery] PorudzbinaSearch search, [FromServices] IGetPorudzbineQuery query)
 {
     return(Ok(_excutor.ExecuteQuery(query, search)));
 }