Пример #1
0
        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();
        }
Пример #2
0
        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());
        }