public void Handle(OrderManuallyPairedForRideLinq @event) { using (var context = _contextFactory.Invoke()) { var orderReport = new OrderReportDetail { Id = @event.SourceId }; var account = context.Find <AccountDetail>(@event.AccountId); orderReport.Account = new OrderReportAccount { AccountId = @event.AccountId, Name = account.Name, Phone = account.Settings.Phone, Email = account.Email, DefaultCardToken = account.DefaultCreditCard, PayBack = account.Settings.PayBack }; orderReport.Order = new OrderReportOrder { ChargeType = ChargeTypes.CardOnFile.Id.ToString(), PickupDateTime = @event.PairingDate, CreateDateTime = @event.PairingDate, PickupAddress = @event.PickupAddress, OriginatingIpAddress = @event.OriginatingIpAddress, KountSessionId = @event.KountSessionId }; orderReport.Client = new OrderReportClient { OperatingSystem = @event.UserAgent.GetOperatingSystem(), UserAgent = @event.UserAgent, Version = @event.ClientVersion }; orderReport.Payment = new OrderReportPayment { PairingToken = @event.PairingToken, IsPaired = true }; orderReport.OrderStatus = new OrderReportOrderStatus { Status = OrderStatus.Created }; context.Save(orderReport); } }
public void Setup() { _orderId = Guid.NewGuid(); var @event = new OrderManuallyPairedForRideLinq { EventDate = _eventDate, SourceId = _orderId, AccountId = Guid.NewGuid(), TripId = 15, PairingDate = DateTime.Now, PickupAddress = new Address { Apartment = "3939", Street = "1234 rue Saint-Hubert", RingCode = "3131", Latitude = 45.515065, Longitude = -73.558064 }, UserAgent = "useragent", ClientLanguageCode = "en", ClientVersion = "1.0", OriginatingIpAddress = "192.168.12.30", KountSessionId = "1i3u13n123", Medallion = "1251515", DriverId = 124135356, PairingCode = "515152", PairingToken = "62523", CreditCardId = Guid.NewGuid() }; Sut.Handle(@event); }
public void Handle(OrderManuallyPairedForRideLinq @event) { using (var context = _contextFactory.Invoke()) { var orderDetail = new OrderDetail { AccountId = @event.AccountId, Id = @event.SourceId, IBSOrderId = @event.TripId, PickupDate = @event.PairingDate, CreatedDate = @event.PairingDate, PickupAddress = @event.PickupAddress, Status = (int)OrderStatus.Created, UserAgent = @event.UserAgent, ClientLanguageCode = @event.ClientLanguageCode, ClientVersion = @event.ClientVersion, IsManualRideLinq = true, OriginatingIpAddress = @event.OriginatingIpAddress, KountSessionId = @event.KountSessionId, }; if (@event.CreditCardId.HasValue) { orderDetail.PaymentInformation = new PaymentInformationDetails() { CreditCardId = @event.CreditCardId, PayWithCreditCard = true }; orderDetail.Settings = new BookingSettings() { ChargeType = ChargeTypes.CardOnFile.Display, ChargeTypeId = ChargeTypes.CardOnFile.Id }; } context.Save(orderDetail); // Create an empty OrderStatusDetail row var details = context.Find <OrderStatusDetail>(@event.SourceId); if (details != null) { _logger.LogMessage("Order Status already existing for Order : " + @event.SourceId); } else { context.Save(new OrderStatusDetail { OrderId = @event.SourceId, AccountId = @event.AccountId, Status = OrderStatus.Created, IBSStatusDescription = _resources.Get("CreateOrder_WaitingForIbs", @event.ClientLanguageCode), PickupDate = @event.PairingDate, IsManualRideLinq = true, VehicleNumber = @event.Medallion, DriverInfos = new DriverInfos { DriverId = @event.DriverId.ToString() } }); } var rideLinqDetails = context.Find <OrderManualRideLinqDetail>(@event.SourceId); if (rideLinqDetails != null) { _logger.LogMessage("RideLinqDetails already existing for Order : " + @event.SourceId); } else { context.Save(new OrderManualRideLinqDetail { OrderId = @event.SourceId, AccountId = @event.AccountId, PairingCode = @event.PairingCode, PairingToken = @event.PairingToken, PairingDate = @event.PairingDate, Distance = @event.Distance, Extra = @event.Extra, Fare = @event.Fare, FareAtAlternateRate = @event.FareAtAlternateRate, Total = @event.Total, Toll = @event.Toll, Tax = @event.Tax, Tip = @event.Tip, Surcharge = @event.Surcharge, RateAtTripStart = @event.RateAtTripStart, RateAtTripEnd = @event.RateAtTripEnd, RateChangeTime = @event.RateChangeTime, Medallion = @event.Medallion, DeviceName = @event.DeviceName, TripId = @event.TripId, DriverId = @event.DriverId, LastFour = @event.LastFour, AccessFee = @event.AccessFee }); } } }
public void when_order_paired_then_order_dto_populated() { var @event = new OrderManuallyPairedForRideLinq { SourceId = Guid.NewGuid(), AccountId = Guid.NewGuid(), TripId = 15, PairingDate = DateTime.Now, PickupAddress = new Address { Apartment = "3939", Street = "1234 rue Saint-Hubert", RingCode = "3131", Latitude = 45.515065, Longitude = -73.558064 }, UserAgent = "useragent", ClientLanguageCode = "en", ClientVersion = "1.0", OriginatingIpAddress = "192.168.12.30", KountSessionId = "1i3u13n123", Medallion = "1251515", DriverId = 124135356, PairingCode = "515152", PairingToken = "62523", CreditCardId = Guid.NewGuid() }; Sut.Handle(@event); using (var context = new BookingDbContext(DbName)) { var order = context.Query <OrderDetail>().SingleOrDefault(x => x.Id == @event.SourceId); Assert.IsNotNull(order); Assert.AreEqual(@event.AccountId, order.AccountId); Assert.AreEqual(@event.TripId, order.IBSOrderId); Assert.AreEqual(@event.PairingDate.ToLongDateString(), order.CreatedDate.ToLongDateString()); Assert.AreEqual(@event.PickupAddress.DisplayLine1, order.PickupAddress.DisplayLine1); Assert.AreEqual((int)OrderStatus.Created, order.Status); Assert.AreEqual(@event.UserAgent, order.UserAgent); Assert.AreEqual(@event.ClientLanguageCode, order.ClientLanguageCode); Assert.AreEqual(@event.ClientVersion, order.ClientVersion); Assert.AreEqual(true, order.IsManualRideLinq); Assert.AreEqual(@event.OriginatingIpAddress, order.OriginatingIpAddress); Assert.AreEqual(@event.KountSessionId, order.KountSessionId); Assert.IsTrue(order.PaymentInformation.PayWithCreditCard); Assert.AreEqual(ChargeTypes.CardOnFile.Id, order.Settings.ChargeTypeId); Assert.AreEqual(@event.CreditCardId, order.PaymentInformation.CreditCardId); var orderStatus = context.Query <OrderStatusDetail>().SingleOrDefault(x => x.OrderId == @event.SourceId); Assert.IsNotNull(orderStatus); Assert.AreEqual(@event.AccountId, orderStatus.AccountId); Assert.AreEqual(OrderStatus.Created, orderStatus.Status); Assert.AreEqual("Processing your order...", orderStatus.IBSStatusDescription); Assert.AreEqual(@event.Medallion, orderStatus.VehicleNumber); Assert.AreEqual(@event.DriverId.ToString(), orderStatus.DriverInfos.DriverId); var orderRideLinq = context.Query <OrderManualRideLinqDetail>().SingleOrDefault(x => x.OrderId == @event.SourceId); Assert.IsNotNull(orderRideLinq); Assert.AreEqual(@event.AccountId, orderRideLinq.AccountId); Assert.AreEqual(@event.PairingCode, orderRideLinq.PairingCode); Assert.AreEqual(@event.PairingToken, orderRideLinq.PairingToken); Assert.AreEqual(@event.PairingDate.ToLongDateString(), orderRideLinq.PairingDate.ToLongDateString()); Assert.AreEqual(@event.Distance, orderRideLinq.Distance); Assert.AreEqual(@event.Extra, orderRideLinq.Extra); Assert.AreEqual(@event.Fare, orderRideLinq.Fare); Assert.AreEqual(@event.FareAtAlternateRate, orderRideLinq.FareAtAlternateRate); Assert.AreEqual(@event.Total, orderRideLinq.Total); Assert.AreEqual(@event.Toll, orderRideLinq.Toll); Assert.AreEqual(@event.Tax, orderRideLinq.Tax); Assert.AreEqual(@event.Tip, orderRideLinq.Tip); Assert.AreEqual(@event.Surcharge, orderRideLinq.Surcharge); Assert.AreEqual(@event.RateAtTripStart, orderRideLinq.RateAtTripStart); Assert.AreEqual(@event.RateAtTripEnd, orderRideLinq.RateAtTripEnd); Assert.AreEqual(@event.RateChangeTime, orderRideLinq.RateChangeTime); Assert.AreEqual(@event.Medallion, orderRideLinq.Medallion); Assert.AreEqual(@event.DeviceName, orderRideLinq.DeviceName); Assert.AreEqual(@event.TripId, orderRideLinq.TripId); Assert.AreEqual(@event.DriverId, orderRideLinq.DriverId); Assert.AreEqual(@event.LastFour, orderRideLinq.LastFour); Assert.AreEqual(@event.AccessFee, orderRideLinq.AccessFee); } }
private void OnOrderManuallyPairedForRideLinq(OrderManuallyPairedForRideLinq @event) { _status = OrderStatus.Created; }