public async Task <Unit> Handle(ProductUpdateCommandDto dto, CancellationToken cancellationToken) { var productFromDb = await _dbContext .Products .Where(p => p.Id == dto.Id) .FirstOrDefaultAsync(cancellationToken); if (productFromDb is null) { throw new BadRequestException("Not found"); } if (productFromDb.ProductCategory is not null) { productFromDb.ProductCategory.Name = dto.CategoryName; } else { await _dbContext.Categories.AddAsync(new ProductCategory { Name = dto.CategoryName }, cancellationToken); } productFromDb.Name = dto.Name; productFromDb.HoldQty = dto.HoldQty; productFromDb.StockQty = dto.StockQty; productFromDb.Price = dto.Price; _dbContext.Products.Update(productFromDb); await _dbContext.SaveChangesAsync(cancellationToken); await this.ProductUpdatedEvent(dto); return(default);
public async Task <IActionResult> UpdateProduct(Guid id, [FromBody] ProductUpdateCommandDto dto) { await _mediator.Send(dto); return(NoContent()); }