示例#1
0
        public async Task UpdateProductOption_Success_ReturnsProductOption()
        {
            //Arrange
            var updateProductOptionDto = _fixture.Create <UpdateProductOptionDto>();
            var productOption          = _fixture.Create <ProductOption>();

            _productOptionRepo.Setup(x => x.UpdateAsync(productOption)).ReturnsAsync(productOption);

            //Act
            var result = await _productOptionService.UpdateProductOptionAsync(productOption, updateProductOptionDto);

            //Assert
            result.Should().NotBeNull().And.Subject.Should().BeOfType <ProductOption>();
        }
        public async Task <IActionResult> UpdateOption(Guid productId, Guid id, UpdateProductOptionDto updateProductOptionDto)
        {
            var productOption = await _productOptionService.GetProductOptionByIdAsync(productId, id);

            if (productOption == null)
            {
                return(NotFound(Constants.ProductOptionNotFound));
            }

            var updatedProductOption = await _productOptionService.UpdateProductOptionAsync(productOption, updateProductOptionDto);

            var productOptionDto = _mapper.Map <ProductOption, ProductOptionDto>(updatedProductOption);

            return(Ok(productOptionDto));
        }
        public async Task <IActionResult> PutProductOptionAsync(Guid productId, Guid id, [FromBody] SaveProductOptionResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var productOption = _mapper.Map <SaveProductOptionResource, ProductOption>(resource);
            var result        = await _productOptionService.UpdateProductOptionAsync(productId, id, productOption);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var productOptionResource = _mapper.Map <ProductOption, ProductOptionResource>(result.ProductOption);

            return(Ok(productOptionResource));
        }