Пример #1
0
        public void Handle(OrderSwitchedToNextDispatchCompany @event)
        {
            using (var context = _contextFactory.Invoke())
            {
                var order = context.Find <OrderDetail>(@event.SourceId);
                order.Status      = (int)OrderStatus.Created;
                order.IBSOrderId  = @event.IBSOrderId;
                order.CompanyKey  = @event.CompanyKey;
                order.CompanyName = @event.CompanyName;
                order.Market      = @event.Market;

                var details = context.Find <OrderStatusDetail>(@event.SourceId);
                details.Status                  = OrderStatus.Created;
                details.IBSStatusId             = null; //set it to null to trigger an update in OrderStatusUpdater
                details.IBSStatusDescription    = string.Format(_resources.Get("OrderStatus_wosWAITINGRoaming", order.ClientLanguageCode), @event.CompanyName);
                details.IBSOrderId              = @event.IBSOrderId;
                details.CompanyKey              = @event.CompanyKey;
                details.CompanyName             = @event.CompanyName;
                details.Market                  = @event.Market;
                details.NextDispatchCompanyKey  = null;
                details.NextDispatchCompanyName = null;
                details.NetworkPairingTimeout   = GetNetworkPairingTimeoutIfNecessary(details, @event.EventDate);

                context.SaveChanges();

                RemoveTemporaryPaymentInfo(context, @event.SourceId);
            }
        }
 public void Handle(OrderSwitchedToNextDispatchCompany @event)
 {
     using (var context = _contextFactory.Invoke())
     {
         var orderReport = context.Find <OrderReportDetail>(@event.SourceId);
         orderReport.Order.CompanyName = @event.CompanyName;
         orderReport.Order.CompanyKey  = @event.CompanyKey;
         orderReport.Order.Market      = @event.Market;
         orderReport.Order.IBSOrderId  = @event.IBSOrderId;
         orderReport.Order.WasSwitchedToAnotherCompany = true;
         orderReport.Order.HasTimedOut = false;
         context.Save(orderReport);
     }
 }
 public void Handle(OrderSwitchedToNextDispatchCompany @event)
 {
     if (@event.HasChangedBackToPaymentInCar)
     {
         var orderStatus = _orderDao.FindOrderStatusById(@event.SourceId);
         if (orderStatus.IsPrepaid)
         {
             _paymentService.RefundPayment(orderStatus.CompanyKey, @event.SourceId);
         }
         else
         {
             // void the preauthorization to prevent misuse fees
             _paymentService.VoidPreAuthorization(orderStatus.CompanyKey, @event.SourceId);
         }
     }
 }
Пример #4
0
 private void OnOrderSwitchedToNextDispatchCompany(OrderSwitchedToNextDispatchCompany obj)
 {
     _isTimedOut = false;
 }