private void InitConnector(CsvEntityRegistry entityRegistry) { // subscribe on connection successfully event Connector.Connected += () => { this.GuiAsync(() => ChangeConnectStatus(true)); }; // subscribe on connection error event Connector.ConnectionError += error => this.GuiAsync(() => { ChangeConnectStatus(false); MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959); }); Connector.Disconnected += () => this.GuiAsync(() => ChangeConnectStatus(false)); // subscribe on error event Connector.Error += error => { this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955)); }; // subscribe on error of market data subscription event Connector.MarketDataSubscriptionFailed += (security, msg, error) => { this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(msg.DataType, security))); }; Connector.NewSecurity += security => _securitiesWindow.SecurityPicker.Securities.Add(security); Connector.NewOrder += order => { _ordersWindow.OrderGrid.Orders.Add(order); _securitiesWindow.ProcessOrder(order); }; // display order as own volume in quotes window Connector.OrderChanged += _securitiesWindow.ProcessOrder; // put the registration error into order's table Connector.OrderRegisterFailed += _ordersWindow.OrderGrid.AddRegistrationFail; Connector.NewMyTrade += _myTradesWindow.TradeGrid.Trades.Add; Connector.NewPortfolio += _portfoliosWindow.PortfolioGrid.Portfolios.Add; Connector.NewPosition += _portfoliosWindow.PortfolioGrid.Positions.Add; // set market data provider _securitiesWindow.SecurityPicker.MarketDataProvider = Connector; try { if (File.Exists(_settingsFile)) { Connector.Load(new XmlSerializer <SettingsStorage>().Deserialize(_settingsFile)); } } catch { } if (Connector.StorageAdapter == null) { return; } entityRegistry.Init(); Connector.StorageAdapter.DaysLoad = TimeSpan.FromDays(3); //Connector.StorageAdapter.Load(); ConfigManager.RegisterService <IExchangeInfoProvider>(new StorageExchangeInfoProvider(entityRegistry)); }
private void InitConnector(IEntityRegistry entityRegistry, SnapshotRegistry snapshotRegistry) { // subscribe on connection successfully event Connector.Connected += () => { this.GuiAsync(() => ChangeConnectStatus(true)); }; // subscribe on connection error event Connector.ConnectionError += error => this.GuiAsync(() => { ChangeConnectStatus(false); MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959); }); Connector.Disconnected += () => this.GuiAsync(() => ChangeConnectStatus(false)); // subscribe on error event Connector.Error += error => { this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955)); }; // subscribe on error of market data subscription event Connector.MarketDataSubscriptionFailed += (security, msg, error) => { this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(msg.DataType, security))); }; Connector.SecurityReceived += (sub, s) => _securitiesWindow.SecurityPicker.Securities.Add(s); Connector.NewOrder += order => { _ordersWindow.OrderGrid.Orders.Add(order); _securitiesWindow.ProcessOrder(order); }; // display order as own volume in quotes window Connector.OrderChanged += _securitiesWindow.ProcessOrder; // put the registration error into order's table Connector.OrderRegisterFailed += _ordersWindow.OrderGrid.AddRegistrationFail; Connector.NewMyTrade += _myTradesWindow.TradeGrid.Trades.Add; Connector.PositionReceived += (sub, p) => _portfoliosWindow.PortfolioGrid.Positions.TryAdd(p); // set market data provider _securitiesWindow.SecurityPicker.MarketDataProvider = Connector; if (Connector.StorageAdapter == null) { return; } entityRegistry.Init(); snapshotRegistry.Init(); Connector.LookupAll(); ConfigManager.RegisterService <IMessageAdapterProvider>(new FullInMemoryMessageAdapterProvider(Connector.Adapter.InnerAdapters)); try { if (File.Exists(_settingsFile) || File.Exists(_settingsFile.MakeLegacy())) { var ctx = new ContinueOnExceptionContext(); ctx.Error += ex => ex.LogError(); using (ctx.ToScope()) Connector.LoadIfNotNull(_settingsFile.DeserializeWithMigration <SettingsStorage>()); } } catch { } }