public async Task <IActionResult> UpdateProduct(int productId, DtoUpdateProduct product) { if (productId != product.Id) { return(BadRequest()); // 400 Status Kodu } var updateProduct = await db.Product.Where(i => i.Id == productId).FirstOrDefaultAsync(); if (updateProduct == null) { return(NotFound()); } using (var transaction = await db.Database.BeginTransactionAsync()) { try { updateProduct.ProductName = product.ProductName; updateProduct.ProductPrice = product.ProductPrice; updateProduct.CategoryId = product.CategoryId; await transaction.CommitAsync(); return(CreatedAtAction("GetProduct", new { productId = updateProduct.Id }, updateProduct)); } catch (Exception e) { await transaction.RollbackAsync(); return(StatusCode(500)); } } }
public async Task <DtoProduct> UpdateAsync(DtoUpdateProduct model) { try { ValidationResult validationResult = updateValidator.Validate(model); if (!validationResult.IsSuccessful) { throw new MissingDataException(validationResult.ErrorMessage); } Product product = await dbContext.Products.FirstOrDefaultAsync(x => x.Id == model.Guid); if (product is null) { throw new NullReferenceException($"Not found product with id {model.Guid}"); } product.Name = model.Name; product.Price = model.Price; var result = dbContext.Products.Update(product); await dbContext.SaveChangesAsync(); return(mapper.Map <Product, DtoProduct>(result.Entity)); } catch (Exception ex) { logger.LogError(ex, $"Error on {nameof(UpdateAsync)} in {nameof(ProductsService)} Entity: {model}"); throw; } }
public async Task <IActionResult> PutAsync([FromBody] DtoUpdateProduct model) { try { DtoProduct product = await service.UpdateAsync(model); return(Ok(product)); } catch { return(BadRequest()); } }
public ValidationResult Validate(DtoUpdateProduct model) { if (model.Guid == Guid.Empty) { return(new ValidationResult { ErrorMessage = "Product Guid is empty" }); } if (model.Price < MinimalProductPrice) { return(new ValidationResult { ErrorMessage = $"Product Price is below minimal, is: {model.Price}, minimal is: {MinimalProductPrice}" }); } if (model.Price > MaximalProductPrice) { return(new ValidationResult { ErrorMessage = $"Product Price is above maximal, is: {model.Price}, minimal is: {MaximalProductPrice}" }); } if (model.Name.Length < MinimalProductNameLength) { return(new ValidationResult { ErrorMessage = $"Product Name is below minimal length, is: {model.Name.Length}, minimal is: {MaximalProductNameLength}" }); } if (model.Name.Length > MaximalProductNameLength) { return(new ValidationResult { ErrorMessage = $"Product Name is below minimal length, is: {model.Name.Length}, maximal is: {MaximalProductNameLength}" }); } return(new ValidationResult { IsSuccessful = true }); }