Exemplo n.º 1
0
 public UpdateProductOptionCommand(Guid productId, Guid productOptionId,
                                   ProductOptionUpdateRequestDto productOptionUpdateRequestDto)
 {
     ProductId       = productId;
     ProductOptionId = productOptionId;
     ProductOptionUpdateRequestDto = productOptionUpdateRequestDto;
 }
Exemplo n.º 2
0
        public void Map_ProductUpdateRequest_To_ProductOption_Should_Work(ProductOptionUpdateRequestDto data)
        {
            var mapper = new MapperFixture().Mapper;
            var result = mapper.Map <ProductOption>(data);

            result.Should().NotBeNull();
            result.Id.Should().Be(data.Id);
        }
        public async Task <IActionResult> UpdateProductOption(Guid productId, Guid productOptionId,
                                                              [FromBody] ProductOptionUpdateRequestDto productOptionUpdateDto)
        {
            var commandResult =
                await _mediator.Send(new UpdateProductOptionCommand(productId, productOptionId,
                                                                    productOptionUpdateDto));

            return(commandResult ? Ok(commandResult.Result) : StatusCode(500, commandResult.FailureReason));
        }
        public ProductOptionUpdateRequestBuilder WithDefaultValues()
        {
            _productOptionUpdateRequest = new ProductOptionUpdateRequestDto
            {
                Id          = Guid.NewGuid(),
                Name        = $"Test Name {DateTime.Now.Ticks}",
                Description = $"Test Description {DateTime.Now.Ticks}",
                ProductId   = Guid.NewGuid()
            };

            return(this);
        }
        public void Not_Have_Error_When_Request_Is_Valid()
        {
            var productOptionUpdateRequest = new ProductOptionUpdateRequestDto
            {
                Id          = Guid.NewGuid(),
                Description = "Test Product Option",
                Name        = "Test",
                ProductId   = Guid.NewGuid()
            };

            var result = _validator.TestValidate(productOptionUpdateRequest);

            Assert.True(result.IsValid);
        }
        public void Have_Error_When_Id_ProductId_Are_Not_Provided()
        {
            var productOptionUpdateRequest = new ProductOptionUpdateRequestDto
            {
                Description = "Testing",
                Name        = "Test"
            };

            var result = _validator.TestValidate(productOptionUpdateRequest);

            Assert.Equal(2, result.Errors.Count);
            result.ShouldHaveValidationErrorFor(x => x.ProductId);
            result.ShouldHaveValidationErrorFor(x => x.Id);
        }
        public async Task <IActionResult> UpdateProductOption(Guid id, ProductOptionUpdateRequestDto productOptionUpdateRequest)
        {
            try
            {
                _logger.LogDebug($"Received {nameof(UpdateProductOption)} request with {{@ProductOptionUpdateRequest}}", productOptionUpdateRequest);
                if (id != productOptionUpdateRequest.Id)
                {
                    return(BadRequest("Parameter mismatch between the route and the payload"));
                }
                await _service.UpdateAsync(_mapper.Map <ProductOption>(productOptionUpdateRequest));

                _logger.LogDebug($"Returned {nameof(UpdateProductOption)} response for Id {productOptionUpdateRequest.Id}");
                return(CreatedAtAction(nameof(UpdateProductOption), productOptionUpdateRequest.Id,
                                       productOptionUpdateRequest.Id));
            }
            catch (ProductOptionNotFoundException exception)
            {
                _logger.LogWarning(exception, exception.Message);
                return(NotFound(exception.Message));
            }
        }