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);
                }
            }
Пример #2
0
        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));
        }
Пример #4
0
        // 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);
        }
Пример #5
0
        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
            })));
        }
Пример #7
0
 public static void CopyFromEntity(GetProductsDto dto, Product product)
 {
     dto.product_id   = product.ProdID;
     dto.product_name = product.ProductName;
 }
Пример #8
0
 public IEnumerable <Product> Get([FromUri] GetProductsDto dto)
 {
     return(_productsService.GetProducts(dto));
 }