public void ignore_duplicate_OrderFailed() { Order order = new Order(this.sg1); this.tradingData.Get <ICollection <Order> >().Add(order); Assert.IsFalse(order.IsRejected); OrderFailed failed = new OrderFailed { OrderId = "111", Reason = "Failed", Cookie = order.Id }; this.rawTradingData.GetData <OrderFailed>().Add(failed); Assert.IsTrue(order.IsRejected); Assert.AreEqual("Failed", order.RejectReason); Assert.IsTrue(order.RejectedDate <= BrokerDateTime.Make(DateTime.Now)); OrderFailed failedTwice = new OrderFailed { OrderId = "111", Reason = "Failed twice", Cookie = order.Id }; this.rawTradingData.GetData <OrderFailed>().Add(failedTwice); Assert.IsTrue(order.IsRejected); Assert.AreEqual("Failed", order.RejectReason); Assert.IsTrue(order.RejectedDate <= BrokerDateTime.Make(DateTime.Now)); }
public void OrderFailed_constructor_test() { OrderFailed item = new OrderFailed(100, "255", "Reason"); Assert.AreEqual(100, item.Cookie); Assert.AreEqual("255", item.OrderId); Assert.AreEqual("Reason", item.Reason); }
internal void OnOrderFailed(int cookie, string smartOrderId, string reason) { OrderFailed.SafeInvoke(cookie, smartOrderId, reason); }
private void OnReservedCustomerCredit( object o, Message <string, ReservedCustomerCredit> e, Producer <string, OrderFailed> producer, Producer <string, OrderState> orderStateProducer) { using (var orderOrchestraDbContext = new OrderOrchestraDbContext()) { IUnitOfWork unitOfWork = new UnitOfWork <Infrastructure.OrderOrchestraDbContext>(orderOrchestraDbContext); IRepository <Entities.Order> orderRepository = unitOfWork.GetRepository <Entities.Order>(); var specification = new Specification <Entities.Order>(); specification.Include(x => x.Products); var order = orderRepository.FirstOrDefault(x => x.OrderId == e.Value.OrderId, specification).Result; if (e.Value.Status.Equals("success")) { order.Status = Entities.Order.OrderStatus.Success; } else { order.Status = Entities.Order.OrderStatus.Failed; } var result = unitOfWork.SaveChanges().Result; if (!result.IsSuccessfull()) { throw new Exception(); } var orderState = new OrderState() { id = order.OrderId, customerId = order.CustomerId, date = order.Date.ToString(), status = order.Status.ToString(), total = order.Total, products = order.Products.Select(x => new OrderProduct() { id = x.ProductId, Quantity = x.Quantity }).ToList() }; var orderStateResult = orderStateProducer.ProduceAsync( "order-state", Guid.NewGuid().ToString(), orderState).Result; if (e.Value.Status.Equals("success")) { // TODO: } else { var orderFailed = new OrderFailed() { OrderId = e.Value.OrderId }; var p = producer.ProduceAsync( "order-failed", Guid.NewGuid().ToString(), orderFailed).Result; } } }
private void OnReservedOrder( object o, Message <string, ReservedOrder> e, Producer <string, ReserveCustomerCredit> reserveCustomerCreditProducer, Producer <string, OrderFailed> orderFailedProducer, Producer <string, OrderState> orderStateProducer) { using (var orderOrchestraDbContext = new OrderOrchestraDbContext()) { IUnitOfWork unitOfWork = new UnitOfWork <Infrastructure.OrderOrchestraDbContext>(orderOrchestraDbContext); IRepository <Entities.Order> orderRepository = unitOfWork.GetRepository <Entities.Order>(); // Get the Order from the repository. var order = orderRepository.FirstOrDefault(x => x.OrderId == e.Value.OrderId).Result; if (order == null) { throw new Exception(); } if (e.Value.Status.Equals("success")) { order.Status = Entities.Order.OrderStatus.WaitingForPayment; order.Total = e.Value.Total; } else if (e.Value.Status.Equals("outofstock")) { order.Status = Entities.Order.OrderStatus.Failed; } // Save the order entity to the repository. orderRepository.Update(order); var result = unitOfWork.SaveChanges().Result; // If save fails, throw an exception. if (!result.IsSuccessfull()) { throw new Exception(); } var orderState = new OrderState() { customerId = order.CustomerId, date = order.Date.ToString(), status = order.Status.ToString(), total = order.Total, products = order.Products.Select(x => new OrderProduct() { id = x.ProductId, Quantity = x.Quantity }).ToList() }; var orderStateResult = orderStateProducer.ProduceAsync( "order-state", Guid.NewGuid().ToString(), orderState).Result; if (e.Value.Status.Equals("success")) { var reserveCustomerCredit = new ReserveCustomerCredit() { OrderId = e.Value.OrderId, Amount = e.Value.Total, CustomerId = order.CustomerId }; var r = reserveCustomerCreditProducer.ProduceAsync( "reserve-customer-credit", Guid.NewGuid().ToString(), reserveCustomerCredit).Result; } else if (e.Value.Status.Equals("outofstock")) { var orderFailed = new OrderFailed() { OrderId = e.Value.OrderId }; var r = orderFailedProducer.ProduceAsync( "order-failed", Guid.NewGuid().ToString(), orderFailed).Result; } } }