示例#1
0
    public Task HandleAsync(OrderCanceled @event)
    {
        // Save In Query Db

        Console.WriteLine("Order Canceled");

        return(Task.CompletedTask);
    }
        public Task Handle(CancelOrder message, IMessageHandlerContext context)
        {
            MarkAsComplete();

            var orderCancelled = new OrderCanceled
            {
                OrderId = Data.OrderId
            };

            return(context.Publish(orderCancelled));
        }
示例#3
0
        /// <summary>
        /// Triggers any orders in the queue. Any orders that were submitted previously
        /// but not re-submitted since the last call of this method will be canceled.
        /// </summary>
        /// <param name="bar">The latest Bar instance. The price data from this Bar is
        /// used to see if any orders have been triggered.</param>
        public void TriggerOrders(Bar bar)
        {
            foreach (var order in untriggeredOrders)
            {
                if (order.Order is IOrderPriced)
                {
                    var price = order.ConditionPrice;
                    if (price <= 0)
                    {
                        price = order.Price;
                    }

                    switch (order.OrderAction)
                    {
                    case EOrderAction.Buy:
                    case EOrderAction.BuyToCover:
                        if (price >= bar.Low)
                        {
                            OnOrderTriggered(order);
                        }
                        break;

                    case EOrderAction.Sell:
                    case EOrderAction.SellShort:
                        if (price <= bar.High)
                        {
                            OnOrderTriggered(order);
                        }
                        break;

                    default:
                        throw new ArgumentException("Unknown OrderAction");
                    }
                }
                else
                {
                    throw new ArgumentException("Unknown order type");
                }
            }

            // Any orders that are in previousSubmittedOrders but not in untriggeredOrders
            // were not resubmitted, and so should be canceled
            foreach (var order in previousSubmittedOrders)
            {
                if (!untriggeredOrders.Contains(order))
                {
                    OrderCanceled.SafeTrigger(order);
                }
            }

            previousSubmittedOrders = untriggeredOrders;
            untriggeredOrders       = untriggeredOrders.Clear();
        }
示例#4
0
 public IActionResult OrderCancelNotify(OrderCanceled model)
 {
     if (string.IsNullOrEmpty(model.reason))
     {
         return(Content("200"));
     }
     else
     {
         var cancelModel = new MeiTOrderCancel
         {
             OrderId    = model.order_id,
             Reason     = model.reason,
             ReasonCode = model.notify_type,
             CreateTime = DateTime.Now
         };
         _orderCancelService.AddCancelRecord(cancelModel);
         return(Content("{\"data\":\"ok\"}"));
     }
 }
示例#5
0
 private void OnOrderCanceled(OrderInfo order)
 {
     OrderCanceled.SafeTrigger(order);
 }
示例#6
0
 public Task Receive(OrderCanceled @event, IMessageContext context)
 {
     TransitionState(@event, Canceled);
     return(CompletedTask);
 }
示例#7
0
 private void When(OrderCanceled @event)
 {
     this.Status = OrderStatus.Canceled;
 }