public async Task <ActionResult <ProductToReturnDto> > GetProductByIdAsync([FromQuery] int id) { var spec = new ProductsWithTypesAndRegionsSpecification(id); var product = await _productsRepo.GetEntityWithSpec(spec); await SetTimeOut(); return(_mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetDtoProducts([FromQuery] UserParams userParams) { var spec = new ProductsWithTypesAndRegionsSpecification(userParams); var specForCount = new ProductWithFiltersForCountSpecification(userParams); var totalItems = await _productsRepo.CountAsync(specForCount); var products = await _productsRepo.ListAsync(spec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); await SetTimeOut(); return(Ok(new Pagination <ProductToReturnDto>(userParams.PageIndex, userParams.PageSize, totalItems, data))); }