internal void OnHistoricalOrdersList(HistoricalOrdersListResponse message) { if (HistoricalOrdersAdded == null) return; var orders = new List<Order>(); foreach (var order in message.HistoricalOrders) { try { var status = order.FilledQuantity > 0 ? Status.Filled : Status.Canceled; orders.Add(new Order(order.UserID, order.Symbol, status == Status.Filled ? order.FilledQuantity : order.CancelledQuantity, DataConverter.ToClientOrderType(order.OrderType), order.OrderSide.ToClientSide(), order.Commission, status == Status.Filled ? order.AvgFillPrice : order.Price, order.OpenDate, DataConverter.ToClientTIF(order.TimeInForce)) { OrderStatus = status, BrokerName = order.BrokerName, AccountId = order.AccountId, BrokerID = order.BrokerID, OpeningQty = order.OpeningQty, ClosingQty = order.ClosingQty, ServerSide = order.ServerSide }); } catch (Exception ex) { Logger.Error(ex, "Failed to parse historical order"); } } HistoricalOrdersAdded(this, new EventArgs<List<Order>>(orders)); }
protected override void ExecuteCommand(OrdersListRequest request) { var count = Math.Max(Math.Min(request.CountPerSymbol, 10000), 1); var response = new HistoricalOrdersListResponse { HistoricalOrders = Core.OMS.GetOrdersHistory(request.User, count, request.Skip), User = request.User }; PushResponse(response); }