Пример #1
0
        private void SendMessageToUIDataBroker(IMessage message)
        {
            switch (message.APIDataType)
            {
            case EapiDataTypes.PositionData:
                var optionsPositionData = message as OptionsPositionData;
                if ((optionsPositionData != null) && optionsPositionData.HandledByPositionDataBuilder)
                {
                    UIDataBroker.Enqueue(optionsPositionData);
                }
                break;

            case EapiDataTypes.UnlTradingData:
            case EapiDataTypes.OrderStatus:
            case EapiDataTypes.ManagedSecurity:
            case EapiDataTypes.AccountSummaryData:
            case EapiDataTypes.SecurityData:
                UIDataBroker.Enqueue(message, false);
                break;

            case EapiDataTypes.OptionData:
                UIDataBroker.Enqueue(message, false);
                Logger.Debug($"Distributer has sent to UIDataBroker {++_optionDataHandledCount} option data messages.@@@@");
                break;
            }
        }
Пример #2
0
        private void StartApplication()
        {
            try
            {
                _appManager       = new AppManager();
                _uiMessageHandler = new UIMessageHandler();
                _uiMessageHandler.Start();
                _uiMessageHandler.APIMessageArrive += DistributerOnAPIMessageArrive;
                _uiMessageHandler.ExceptionThrown  += DistributerOnExceptionThrown;

                _appManager.Distributer.AddUIMessageHandler(_uiMessageHandler);

                UIDataBroker = new UIDataBroker();
                UIDataBroker.Start();
                _appManager.Distributer.AddUIDataBroker(UIDataBroker);

                _appManager.ConnectToBroker();
                //For Test: Thread.Sleep(30000);
                _startApplicationMethodDone = true;
                this.InvokeIfRequired(() =>
                {
                    PopupMessageForm.ShowMessage("Start Application Method finish successfully!!!", Color.Green,
                                                 this, 5, withSiren: false);
                    UpdateGuiComponents();
                });
                _appManager.PositionNeedToOptimized += AppManagerOnPositionNeedToOptimized;
                _appManager.TWSDisconnected         += AppManagerOnTWSDisconnected;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                this.InvokeIfRequired(() => { MessageBox.Show(ex.Message); });
            }
        }