示例#1
0
 public ViewResult ProductUpdated(ProductUpdateRequestDto updatedProduct)
 {
     if (ModelState.IsValid)
     {
         return(View("ProductUpdated", updatedProduct));
     }
     return(View());
 }
 public async Task <BaseResponse <ProductDto> > UpdateProduct([FromBody] ProductUpdateRequestDto model)
 {
     if (ModelState.IsValid)
     {
         return(await _productService.UpdateProduct(model));
     }
     return(new FailureResponse <ProductDto>(GetErrorMessages()));
 }
示例#3
0
        public void Map_ProductUpdateRequest_To_Product_Should_Work(ProductUpdateRequestDto data)
        {
            var mapper = new MapperFixture().Mapper;
            var result = mapper.Map <Product>(data);

            result.Should().NotBeNull();
            result.Id.Should().Be(data.Id);
        }
示例#4
0
        private async Task PrepareImage(ProductUpdateRequestDto model, DbProduct create)
        {
            if (model.Image != null && model.Image.Id == null)
            {
                var dbModel = _mapper.Map <DbImage>(model.Image);
                dbModel.Buffer = Convert.FromBase64String(model.Image.Base64String);
                var dbImage = await _imageRepository.Add(dbModel);

                create.ImageId = dbImage.Id;
            }
        }
示例#5
0
 public IActionResult Put(ProductUpdateRequestDto request)
 {
     if (ModelState.IsValid)
     {
         Trace.WriteLine("Put");
         dataBaseBridge.Update(request);
         return(RedirectToAction("Index"));
     }
     Response.StatusCode = 400;
     return(Content("Invalid request !!!"));
 }
示例#6
0
 public ViewResult EditProduct(ProductUpdateRequestDto request)
 {
     if (ModelState.IsValid)
     {
         Trace.WriteLine("doUpdate");
         dataBaseBridge.Update(request);
         return(View("ProductUpdated", request));
     }
     Trace.WriteLine("Not valid");
     return(View());
 }
示例#7
0
        public ViewResult EditProduct(Guid id)
        {
            Trace.WriteLine("Edit");
            Product product = dataBaseBridge.GetProduct(id);
            ProductUpdateRequestDto request = new ProductUpdateRequestDto();

            request.Id       = product.Id;
            request.NewName  = product.Name;
            request.NewPrice = product.Price;
            return(View(request));
        }
        public async Task <IActionResult> Put(Guid id, [FromBody] ProductUpdateRequestDto productDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(string.Join("\n", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage))));
            }

            await _productService.UpdateAsync(id, productDto.Name, productDto.Price);

            return(NoContent());
        }
示例#9
0
        public ProductUpdateRequestBuilder WithDefaultValues()
        {
            _productUpdateRequest = new ProductUpdateRequestDto
            {
                Id            = Guid.NewGuid(),
                Name          = $"Test Name {DateTime.Now.Ticks}",
                Description   = $"Test Description {DateTime.Now.Ticks}",
                Price         = 100,
                DeliveryPrice = 5
            };

            return(this);
        }
示例#10
0
        public IActionResult PutProduct(ProductUpdateRequestDto request)
        {
            if (ModelState.IsValid)
            {
                _productService.UpdateProduct(request.Id, request.Name, request.Price);

                return(View(request));
            }
            else
            {
                return(Content("Błędne dane"));
            }
        }
示例#11
0
        public async Task <ActionResult> Put([FromBody] ProductUpdateRequestDto request)
        {
            try
            {
                var product = _mapper.Map <Product>(request);
                await _productService.Update(product);

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#12
0
        public void Not_Have_Error_When_Request_Is_Valid()
        {
            var productUpdateRequest = new ProductUpdateRequestDto
            {
                Description   = "Testing",
                Name          = "Test",
                Id            = Guid.NewGuid(),
                Price         = 10,
                DeliveryPrice = 1
            };

            var result = _validator.TestValidate(productUpdateRequest);

            Assert.Empty(result.Errors);
        }
示例#13
0
        public void Have_Multiple_Errors_When_Id_Price_DeliveryPrice_Are_Not_Provided()
        {
            var productUpdateRequest = new ProductUpdateRequestDto
            {
                Description = "Testing",
                Name        = "Test"
            };

            var result = _validator.TestValidate(productUpdateRequest);

            Assert.Equal(3, result.Errors.Count);
            result.ShouldHaveValidationErrorFor(request => request.Id);
            result.ShouldHaveValidationErrorFor(request => request.Price);
            result.ShouldHaveValidationErrorFor(request => request.DeliveryPrice);
        }
示例#14
0
        public void Have_Error_When_Id_Is_Empty()
        {
            var productUpdateRequest = new ProductUpdateRequestDto
            {
                Description   = "Testing",
                Name          = "Test",
                Id            = Guid.Empty,
                Price         = 10,
                DeliveryPrice = 1
            };

            var result = _validator.TestValidate(productUpdateRequest);

            Assert.Equal(1, result.Errors.Count);
            result.ShouldHaveValidationErrorFor(x => x.Id);
        }
示例#15
0
        public void Put([FromBody] ProductUpdateRequestDto request)
        {
            if (!ModelState.IsValid)
            {
                return;
            }

            Product foundProduct = _productRepository.FindById(request.Id);

            if (foundProduct == null)
            {
                return;
            }

            foundProduct.Name  = request.Name;
            foundProduct.Price = request.Price;

            _productRepository.Update(foundProduct);
        }
示例#16
0
        public async Task <IActionResult> Put(Guid id, [FromBody] ProductUpdateRequestDto productUpdateRequestDto)
        {
            if (id != productUpdateRequestDto.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Product product = await _context.Product.FirstOrDefaultAsync(d => d.Id == id);

                    product.Name  = productUpdateRequestDto.Name;
                    product.Price = productUpdateRequestDto.Price;
                    _context.Update(product);
                    await _context.SaveChangesAsync();

                    ProductDto productDto = new ProductDto()
                    {
                        Id    = product.Id,
                        Name  = product.Name,
                        Price = product.Price
                    };
                    return(Json(productDto));
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProductExists(id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            return(BadRequest());
        }
示例#17
0
        public async Task <BaseResponse <ProductDto> > UpdateProduct(ProductUpdateRequestDto model)
        {
            var update = _mapper.Map <DbProduct>(model);

            try
            {
                await PrepareImage(model, update);

                var updated = await _productRepository.Update(update);

                var result = _mapper.Map <ProductDto>(updated);
                if (result.Image != null)
                {
                    result.Image.Base64String = model.Image?.Base64String;
                }
                return(new SuccessResponse <ProductDto>(result));
            }
            catch (Exception ex)
            {
                return(new FailureResponse <ProductDto>(new[] { "Ошибка при обновлении продукта", ex.Message }));
            }
        }
示例#18
0
        public async Task <IActionResult> UpdateProduct(Guid id, ProductUpdateRequestDto productUpdateRequest)
        {
            try
            {
                _logger.LogDebug($"Received {nameof(UpdateProduct)} request with {{@ProductUpdateRequest}}", productUpdateRequest);

                if (id != productUpdateRequest.Id)
                {
                    return(BadRequest("Parameter mismatch between the route and the payload"));
                }

                await _service.UpdateAsync(_mapper.Map <Product>(productUpdateRequest));

                _logger.LogDebug($"Returned {nameof(UpdateProduct)} response for Id {productUpdateRequest.Id}");
                return(CreatedAtAction(nameof(UpdateProduct),
                                       new { id = productUpdateRequest.Id },
                                       productUpdateRequest.Id));
            }
            catch (ProductNotFoundException exception)
            {
                _logger.LogError(exception, exception.Message);
                return(NotFound(exception.Message));
            }
        }
 public UpdateProductCommand(Guid productId, ProductUpdateRequestDto productUpdateRequestDto)
 {
     ProductId = productId;
     ProductUpdateRequestDto = productUpdateRequestDto;
 }
示例#20
0
 public void Update(ProductUpdateRequestDto request)
 {
     DbImplementation.UpdateProduct(request);
 }
 public async Task<IActionResult> UpdateProduct(Guid productId,
     [FromBody] ProductUpdateRequestDto productUpdateRequestDto)
 {
     var commandResult = await _mediator.Send(new UpdateProductCommand(productId, productUpdateRequestDto));
     return commandResult ? Ok(commandResult.Result) : StatusCode(500, commandResult.FailureReason);
 }
示例#22
0
        public void UpdateProduct(ProductUpdateRequestDto request)
        {
            string updateProductCommand = "UPDATE Products SET Name = '" + request.NewName + "', Price = " + FormatWithComma(request.NewPrice) + " WHERE Id='" + request.Id + "';";

            CreateAndCommitTransaction(updateProductCommand);
        }