public PagedResponse <ProizvodDto> Izvrsi(ProizvodSearch search)
        {
            var query = _context.Proizvodi.AsQueryable();

            if (!string.IsNullOrEmpty(search.Naziv) || !string.IsNullOrWhiteSpace(search.Naziv))
            {
                query = query.Where(x => x.Naziv.ToLower().Contains(search.Naziv.ToLower()));
            }

            var skipCount = search.PerPage * (search.Page - 1);

            var response = new PagedResponse <ProizvodDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => new ProizvodDto
                {
                    Id           = x.Id,
                    Naziv        = x.Naziv,
                    Cena         = x.Cena,
                    Opis         = x.Opis,
                    Slika        = x.Slika,
                    Kolicina     = x.Kolicina,
                    KategorijaId = x.KategorijaId
                }).ToList()
            };

            return(response);
        }
        public PagedResponse <DohvatiProizvodCenuSlikuDto> Execute(ProizvodSearch search)
        {
            var query = context.Proizvodi.Include(x => x.Cene).AsQueryable();


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

            var response = new PagedResponse <DohvatiProizvodCenuSlikuDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => new DohvatiProizvodCenuSlikuDto
                {
                    NazivP       = x.NazivProizvoda,
                    OpisP        = x.OpisProizvoda,
                    KolicinaP    = x.KolicinaProizvoda,
                    SlikaP       = x.SlikaProizvoda,
                    Slike        = x.Slike.Select(x => x.SlikaPutanja),
                    CenaP        = x.Cene.OrderByDescending(x => x.Id).Select(x => x.CenaP).First(),
                    IdKategorija = x.IdKategorija
                }).ToList()
            };

            return(response);
        }
Example #3
0
        public void SearchProizvod()
        {
            // priprema
            ProizvodSearch search = new ProizvodSearch { IsPagedResponse = false, Keyword = "" };

            _mockGenericRepository.Setup(gr => gr.Search(p => true, "JedinicaMere,TipProizvoda,Dobavljaci.Dobavljac"))
                .Returns(proizvodi.AsQueryable());

            _mockMapper.Setup(m => m.Map<IEnumerable<ReadProizvodDto>>(proizvodi))
                .Returns(proizvodiDto);

            // izvrsenje
            var res = _searchProizvodCommand.Execute(search) as List<ReadProizvodDto>;

            // provera
            Assert.IsNotNull(res);
            Assert.AreEqual(proizvodiDto.Count, res.Count);
        }
Example #4
0
        public PagedResponse <GetProizvodDto> Execute(ProizvodSearch search)
        {
            var upit = _context.Proizvodi.Include(x => x.Cenovnici).Include(x => x.Slike).AsQueryable();

            if (!string.IsNullOrEmpty(search.Naziv) || !string.IsNullOrWhiteSpace(search.Naziv))
            {
                upit = upit.Where(x => x.Naziv.ToLower().Contains(search.Naziv.ToLower()));
            }
            if (search.IdKat != 0)
            {
                if (_context.Kategorije.Any(x => x.Id == search.IdKat))
                {
                    upit = upit.Where(x => x.IdKat == search.IdKat);
                }
                else
                {
                    throw new NotFoundException(search.IdKat, typeof(Kategorija));
                }
            }
            var preskokBrojenja = search.PoStrani * (search.Strana - 1);
            var odgovor         = new PagedResponse <GetProizvodDto>
            {
                TrenutnaStrana   = search.Strana,
                StavkePoStranici = search.PoStrani,
                UkupniBrojStavki = upit.Count(),
                Stavke           = upit.Skip(preskokBrojenja).Take(search.PoStrani).Select(x => new GetProizvodDto
                {
                    Naziv    = x.Naziv,
                    Kolicina = x.Kolicina,
                    Slika    = x.Slika,
                    Slike    = x.Slike.Select(x => x.Putanja),
                    Opis     = x.Opis,
                    Cena     = x.Cenovnici.OrderByDescending(y => y.Id).Select(x => x.CenaProizvod).First(),
                    IdKat    = x.IdKat
                }).ToList()
            };

            return(odgovor);
        }
Example #5
0
        public void PagedSearchProizvod()
        {
            // priprema
            ProizvodSearch search = new ProizvodSearch { IsPagedResponse = true, Keyword = "", PageSize = 2, PageNumber = 1 };

            _mockGenericRepository.Setup(gr => gr.Search(p => true, "JedinicaMere,TipProizvoda,Dobavljaci.Dobavljac"))
                .Returns(proizvodi.AsQueryable());

            _mockMapper.Setup(m => m.Map<IEnumerable<ReadProizvodDto>>(proizvodi))
                .Returns(proizvodiDto);

            // izvrsenje
            var res = _searchProizvodCommand.Execute(search) as PagedResponse<ReadProizvodDto>;

            // provera
            Assert.IsNotNull(res);
            Assert.AreEqual(proizvodiDto.Count, res.Data.Count());
            Assert.AreEqual(false, res.HasNext);
            Assert.AreEqual(false, res.HasPrevious);
            Assert.AreEqual(2, res.PageSize);
            Assert.AreEqual(proizvodiDto.Count, res.TotalCount);
            Assert.AreEqual(1, res.TotalPages);
        }
 public IActionResult Get([FromQuery] ProizvodSearch search, [FromServices] IGetProizvodQuery query)
 {
     return(Ok(executor.ExecuteRequest(query, search)));
 }
 public IActionResult SearchProizvod([FromQuery] ProizvodSearch search, [FromServices] ISearchProizvodsCommand command)
 {
     return(Ok(_loggerMediator.HandleProccessExecution(command, search)));
 }