// запуск чата (ChatControlBackEnd) // arguments[0] содержит Id пользователя и перекрывает userId public void Start(int userId = 0, List <string> arguments = null) { if (engine == null) { engine = new ChatControlBackEnd(); Initialize(); } engine.Start(); if (arguments != null && arguments.Count >= 1) { userId = arguments[0].ToInt(0); } if (userId != 0) { ChatSettings.Instance.Id = userId; if (ChatSettings.Instance.AutoLogin) { engine.Login(userId); } } animationTimer.Tick += OnAnimationTimerTicked; animationTimer.Interval = 500; animationTimer.Start(); // 4 debug if (arguments != null && arguments.Count >= 3) { engine.StartSpam(arguments[1], arguments[2].ToInt(1000)); } }
public MainForm() { Instance = this; if (AppConfig.GetBooleanParam("SingleInstance", true)) { var prc = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName); if (prc.Length > 1) { MessageBox.Show(Localizer.GetString("MessageTerminalAlreadyRunning"), Localizer.GetString("TitleWarning")); Process.GetCurrentProcess().Kill(); return; } } // показать окно загрузки SplashScreen.ShowSplash(StartupStage.Started); InitializeComponent(); Localizer.LocalizeControl(this); bookmarkStrip.ImgList = lstGlyph32; SetupMenuImages(); try { MakeFormMdi(); Candlechart.Core.PluginManager.Instance.Initialize(); RobotCollection.Initialize(); ScriptManager.Initialize(); ScriptManager.Instance.scriptListIsUpdated += ActualizeScriptMenu; CheckAppFolders(); Logger.Info("Старт терминала (" + ExecutablePath.ExecPath + ")"); InitializeTooltips(); InitializeToolButtons(ChartToolButtonStorage.Instance.selButtons, panelChartTools); InitializeToolButtons(ChartToolButtonStorage.Instance.selSystemButtons, panelCommonTools); InitializeSeriesSettings(); BtnFlipPanelChartToolsClick(btnFlipPanelCommonTools, null); BookmarkStorage.Instance.BookmarkDeleted += InstanceOnBookmarkDeleted; // шаг 1 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeInstrumentalPanels); UserSettings.Instance.LoadProperties(); EventSoundPlayer.Instance.LoadSounds(); robotFarm = new RobotFarm(UpdateTickersCacheForRobots); robotFarm.OnStateChanged += RobotFarmStateChanged; quoteReceiver = new TcpQuoteReceiver(); quoteReceiver.OnQuotesReceived += OnQuotesReceived; quoteReceiver.OnNewsReceived += OnNewsReceived; NewsCache.Instance.ActualizationCompleted += newsCount => AddMessageToStatusPanelSafe(DateTime.Now, string.Format("{0} ({1})", Localizer.GetString("MessageNewsRead"), newsCount)); Contract.Util.BL.QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath)); DalSpot.Instance.SetFavoritesList(UserSettings.Instance.FavoriteTickers.ToArray()); navPanelControl.SetupPages(UserSettings.Instance.NavPanelPages); navPanelControl.closePanelClicked += () => MenuitemNavPaneClick(this, EventArgs.Empty); //AccountStatus.Instance.ConnectionStatusIsUpdated += InstanceOnConnectionStatusIsUpdated; AccountStatus.Instance.ServerConnectionStatus = DalSpot.Instance.ConnectionWasEstablished ? ServerConnectionStatus.Connected : ServerConnectionStatus.NotConnected; // шаг 2 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeQuoteStream); ResumeConnectionWithServer(); // запуск чата ChatEngine = new ChatControlBackEnd(); ChatEngine.Start(); SetupChat(); // шаг 3 завершен - обновить статус toolTipStatus.SetToolTip(lblConnectStatus, ""); toolTipStatus.SetToolTip(connectionStatusImage, ""); SplashScreen.UpdateState(StartupStage.MakeServerConnection); AccountStatus.Instance.OnAccountInfoUpdated += OnAccountInfoUpdated; AccountStatus.Instance.OnConnectionAborted += ResumeConnectionWithServer; AccountStatus.Instance.OnAuthenticationFailed += AuthenticationFailed; // вывести список открытых/закрытых за последнее время ордеров AccountStatus.Instance.OnAccountDataFirstReceived += ShowLast24HrOrders; autosaveFolder = AppConfig.GetStringParam("AutosaveFolder", "\\autosave"); autosaveFolder = autosaveFolder.TrimEnd('\\'); if (autosaveFolder.StartsWith("\\")) autosaveFolder = ExecutablePath.ExecPath + autosaveFolder; CrossChartDivergenciesSettingsWindow.GetChartsList += GetChartsList; printDocument.PrintPage += PrintDocumentPrintPage; serverProxyTrade.OnConnectionReestablished += ReviveFactory; SetupDragTargets(); } catch (Exception ex) { Logger.Error("TradeSharp - ошибка инициализации ", ex); Close(); return; } // шаг 4 завершен - обновить статус SplashScreen.UpdateState(StartupStage.FillDictionaries); // запуск процесса-планировщика threadSchedule = new Thread(ScheduleThreadRoutine); threadSchedule.Start(); AppMessageFilter.ApplyDiffString(UserSettings.Instance.HotKeyList); }