public void Handle(PrepaidOrderPaymentInfoUpdated @event)
        {
            // Paypal web (prepaid) flow

            var temporaryInfo = _orderDao.GetTemporaryInfo(@event.OrderId);
            var orderInfo     = JsonSerializer.DeserializeFromString <TemporaryOrderCreationInfo>(temporaryInfo.SerializedOrderCreationInfo);

            DeleteTempOrderData(@event.OrderId);

            var account = _accountDao.FindById(orderInfo.AccountId);

            var result = _ibsCreateOrderService.CreateIbsOrder(orderInfo.Request.OrderId, orderInfo.Request.PickupAddress, orderInfo.Request.DropOffAddress, orderInfo.Request.Settings.AccountNumber,
                                                               orderInfo.Request.Settings.CustomerNumber, orderInfo.Request.CompanyKey, orderInfo.Request.IbsAccountId,
                                                               orderInfo.Request.Settings.Name, orderInfo.Request.Settings.Phone, account.Email, orderInfo.Request.Settings.Passengers, orderInfo.Request.Settings.VehicleTypeId,
                                                               orderInfo.Request.IbsInformationNote, orderInfo.Request.IsFutureBooking, orderInfo.Request.PickupDate, orderInfo.Request.Prompts, orderInfo.Request.PromptsLength,
                                                               orderInfo.Request.ReferenceDataCompanyList.ToList(), orderInfo.Request.Market, orderInfo.Request.Settings.ChargeTypeId,
                                                               orderInfo.Request.Settings.ProviderId, orderInfo.Request.Fare, orderInfo.Request.TipIncentive, account.DefaultTipPercent, orderInfo.Request.AssignVehicleId);

            var success = SendOrderCreationCommands(@event.SourceId, result.CreateOrderResult, true, orderInfo.Request.ClientLanguageCode);

            if (success)
            {
                SendConfirmationEmail(result.CreateOrderResult.Value, orderInfo.AccountId, orderInfo.Request.Settings, orderInfo.ChargeTypeEmail,
                                      orderInfo.Request.PickupAddress, orderInfo.Request.DropOffAddress, orderInfo.Request.PickupDate, orderInfo.Request.UserNote, orderInfo.Request.ClientLanguageCode);
            }

            _ibsCreateOrderService.UpdateOrderStatusAsync(@event.SourceId);
        }
 public void Handle(PrepaidOrderPaymentInfoUpdated @event)
 {
     using (var context = _contextFactory.Invoke())
     {
         var orderReport = context.Find <OrderReportDetail>(@event.OrderId);
         orderReport.Payment.PaymentId          = @event.SourceId;
         orderReport.Payment.TotalAmountCharged = @event.Amount;
         orderReport.Payment.MeterAmount        = @event.Meter;
         orderReport.Payment.TipAmount          = @event.Tip;
         orderReport.Payment.TransactionId      = @event.TransactionId;
         orderReport.Payment.Provider           = @event.Provider;
         orderReport.Payment.Type        = @event.Type;
         orderReport.Payment.IsCompleted = true;
         context.Save(orderReport);
     }
 }
Ejemplo n.º 3
0
 public void Handle(PrepaidOrderPaymentInfoUpdated @event)
 {
     using (var context = _contextFactory.Invoke())
     {
         context.Save(new OrderPaymentDetail
         {
             PaymentId     = @event.SourceId,
             Amount        = @event.Amount,
             Meter         = @event.Meter,
             Tax           = @event.Tax,
             Tip           = @event.Tip,
             OrderId       = @event.OrderId,
             TransactionId = @event.TransactionId,
             Provider      = PaymentProvider.PayPal,
             Type          = PaymentType.PayPal,
             IsCompleted   = true
         });
     }
 }