FastQuant.OrderManager.OnExecutionReport C# (CSharp) Méthode

OnExecutionReport() private méthode

private OnExecutionReport ( ExecutionReport report ) : void
report ExecutionReport
Résultat void
        internal void OnExecutionReport(ExecutionReport report)
        {
            report.Order = report.Order ?? (report.OrderId == -1 ? ordersByClOrderId[report.ClOrderId] : ordersById[report.OrderId]);
            report.ClientId = report.Order.ClientId;
            report.ClOrderId = report.Order.ClOrderId;
            var order = report.Order;
            var orderStatus = order.Status;
            Messages.Add(report);
            order.OnExecutionReport(report);
            if (orderStatus != order.Status)
                this.framework.EventServer.OnOrderStatusChanged(order, true);

            switch (report.ExecType)
            {
                case ExecType.ExecNew:
                    if (report.ProviderOrderId != null)
                        ordersByProviderId[report.ProviderOrderId] = order;
                    this.framework.EventServer.OnNewOrder(order, true);
                    break;
                case ExecType.ExecRejected:
                    this.framework.EventServer.OnOrderRejected(order, true);
                    this.framework.EventServer.OnOrderDone(order, true);
                    CancelOCAOrder(order);
                    break;
                case ExecType.ExecExpired:
                    this.framework.EventServer.OnOrderExpired(order, true);
                    this.framework.EventServer.OnOrderDone(order, true);
                    CancelOCAOrder(order);
                    break;
                case ExecType.ExecTrade:
                    if (order.Status == OrderStatus.PartiallyFilled)
                        this.framework.EventServer.OnOrderPartiallyFilled(order, true);
                    else
                    {
                        this.framework.EventServer.OnOrderFilled(order, true);
                        this.framework.EventServer.OnOrderDone(order, true);
                        CancelOCAOrder(order);
                    }
                    break;
                case ExecType.ExecCancelled:
                    this.framework.EventServer.OnOrderCancelled(order, true);
                    this.framework.EventServer.OnOrderDone(order, true);
                    CancelOCAOrder(order);
                    break;
                case ExecType.ExecCancelReject:
                    this.framework.EventServer.OnOrderCancelRejected(order, true);
                    break;
                case ExecType.ExecReplace:
                    this.framework.EventServer.OnOrderReplaced(order, true);
                    break;
                case ExecType.ExecReplaceReject:
                    this.framework.EventServer.OnOrderReplaceRejected(order, true);
                    break;
            }
            if (IsPersistent)
                Server?.Save(report, -1);
        }