Esempio n. 1
0
        private async Task <Order> SendRequestOnShipment(Order order)
        {
            if (order.Status == OrderStatus.Processing)
            {
                try
                {
                    // отправляем заявку на отгрузку товара
                    _warehouseServiceClient.AddHeader(Constants.USERID_HEADER, order.UserId.ToString());
                    await _warehouseServiceClient.ShipmentAsync(new ShipmentRequestDTO
                    {
                        DeliveryAddress = order.DeliveryAddress,
                        OrderNumber     = order.OrderNumber.ToString(),
                        UserId          = order.UserId
                    });

                    order.Status = OrderStatus.Complete;

                    _orderContext.Orders.Update(order);
                    await _orderContext.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    // будет некая джоба, которая допинает и отправит заказ на отгрузку, если сейчас не получилась, поэтому мы ничего делаем
                }
            }
            else
            {
                // просто логируем, что заказ еще не оплачен, ничего не делаем
            }
            return(order);
        }