public async Task RejectOrderAsync(Order order, RejectOrderDTO rejectOrder) { order.Status = OrderStatus.Rejected; order.RejectReason = rejectOrder.RejectReason; foreach (var orderItem in order.OrderItems) { var specificProduct = await _context.Products.FindAsync(orderItem.ProductId); if (specificProduct == null) { continue; } var newStock = specificProduct.Stock + orderItem.Count; specificProduct.Stock = newStock; await _context.SaveChangesAsync(); await _bus.Publish(new ProductUpdateStockMessage { SpecificProductId = specificProduct.Id, Stock = newStock }); } await _context.SaveChangesAsync(); }
public async Task <ActionResult> RejectOrder(int id, [FromForm] RejectOrderDTO rejectOrder) { var order = await _orderService.FindByIdAsync(id); if (order == null) { return(NotFound()); } await _orderService.RejectOrderAsync(order, rejectOrder); return(NoContent()); }