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); }
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); }
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); }
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))); }