public async Task GetProducts_ShouldReturnProducts_WhenProductsExist( [Frozen] Mock <IMediator> mockMediator, List <Core.Handlers.GetProduct.Product> products, [Greedy] ProductController sut, GetProductsQuery query ) { //Arrange var dto = new GetProductsDto { TotalProducts = products.Count, Products = products }; mockMediator.Setup(x => x.Send(It.IsAny <GetProductsQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(dto); //Act var actionResult = await sut.GetProducts(query); //Assert var okObjectResult = actionResult as OkObjectResult; okObjectResult.Should().NotBeNull(); var response = okObjectResult.Value as Models.GetProductsResult; response.TotalProducts.Should().Be(products.Count); response.Products.Count.Should().Be(products.Count); for (int i = 0; i < products.Count; i++) { response.Products[i].ProductNumber.Should().Be(products[i].ProductNumber); } }
public IEnumerable <Product> GetProducts(GetProductsDto dto) { var products = this._database .Products .Include(p => p.Category) .Include(p => p.FieldValues) .Include(p => p.FieldValues.Select(fv => fv.Field)) ; if (dto.CategoryId.HasValue) { products = products.Where(p => p.CategoryId == dto.CategoryId); } if (dto.FieldValues != null) { var fieldIds = dto.FieldValues.Select(fv => fv.Key).ToList(); var fields = _database.Fields.Where(f => fieldIds.Contains(f.Id)).ToList(); products = this.FilterFields(dto.FieldValues, fields, products); } return(products .OrderBy(p => p.Id) .Skip((dto.Page - 1) * dto.Take) .Take(dto.Take) .ToList()); }
public IActionResult GetProducts([FromBody] GetProductsDto productModel) { if (!ModelState.IsValid) { return(BadRequest()); } var products = ProductsRepository.GetAvailableProducts(productModel.Name, productModel.CategoryId, productModel.PageIndex, productModel.PageSize); if (products == null) { return(BadRequest()); } var result = new ProductPagingDto() { Products = products, HasNextPage = products.HasNextPage, HasPreviousPage = products.HasPreviousPage, IsFirstPage = products.IsFirstPage, IsLastPage = products.IsLastPage, PageCount = products.PageCount, PageNumber = products.PageNumber, PageSize = products.PageSize, TotalItemCount = products.TotalItemCount }; return(Json(result)); }
// GET: api/Products public GetProductsDto GetProducts() { var products = from p in db.Products select new ProductDto { Id = p.Id }; var dto = new GetProductsDto { Id = Guid.NewGuid().ToString(), Timestamp = DateTime.Now, Products = products.ToList() }; return(dto); }
public async Task <IActionResult> Get([FromQuery] GetProductsDto item = null) { item = item ?? new GetProductsDto(); var result = await _productRepository.GetAllProductsChunk(new PaginationDto { PageNumber = item.PageNumber, PageSize = item.PageSize, SortBy = item.SortBy.ToString(), Order = item.Order.ToString() }); return(Ok(result.Select(a => new GetProductsResponseDto { Id = a.Id, Name = a.Name, Stock = a.Stock, Likes = a.Likes, Price = a.Price }))); }
public async Task <IActionResult> Product([FromQuery] GetProductsDto item = null) { if (item == null) { item = new GetProductsDto(); } var result = await _repoSnack.GetAllSnacksPagination(new PaginationDTO { PageNumber = item.PageNumber, PageSize = item.PageSize, SortBy = item.SortBy.ToString(), Order = item.Order.ToString() }); return(Ok(result.Select(x => new GetProductsResponseDto { Id = x.snackId, Name = x.snackName, Price = x.snackPrice, Likes = x.snackLikes, Stock = x.snackQuantity }))); }
public static void CopyFromEntity(GetProductsDto dto, Product product) { dto.product_id = product.ProdID; dto.product_name = product.ProductName; }
public IEnumerable <Product> Get([FromUri] GetProductsDto dto) { return(_productsService.GetProducts(dto)); }