コード例 #1
0
        private void OnConnect(QuikTrader trader, Exception connectionError)
        {
            if (connectionError == null)
            {
                _settingErrors.AddRange(trader.Terminal.GetTableSettings()
                                        .Select(r => new SettingsError(LocalizedStrings.Str3031Params.Put(r.Table.Caption, r.Error.Message), r.IsCritical)));

                if (_settingErrors.Count == 0)
                {
                    OkResult.SetVisibility(true);
                }
            }
            else
            {
                MessageBox.Show(this, connectionError.ToString(), "Verifier");
            }

            trader.Dispose();
        }
コード例 #2
0
        private void CheckClick(object sender, RoutedEventArgs e)
        {
            var terminal = SelectedTerminal;

            if (terminal.SystemProcess.MainModule == null)
            {
                throw new InvalidOperationException(LocalizedStrings.InvalidProcess);
            }

            OkResult.SetVisibility(false);

            _settingErrors.Clear();

            var isDde = IsDde.IsChecked == true;

            var connector = new QuikTrader(terminal.SystemProcess.MainModule.FileName)
            {
                IsDde = isDde
            };

            var checkDde = isDde && CheckDde.IsChecked == true;

            connector.Connected += () => this.GuiAsync(() =>
            {
                if (checkDde)
                {
                    connector.StartExport();
                }

                OnConnect(connector, null);
            });

            connector.ConnectionError += error => this.GuiSync(() => OnConnect(connector, error));

            if (checkDde)
            {
                connector.ProcessDataError += error => _settingErrors.Add(new SettingsError(LocalizedStrings.Str3030Params.Put(error.Message), true));
            }

            connector.Connect();
        }