public static void StartInsolationPalette(Document doc) { if (doc == null || doc.IsDisposed) { return; } if (insModels == null) { insModels = new Dictionary <Document, InsModel>(); } Application.DocumentManager.DocumentToBeDeactivated += DocumentManager_DocumentToBeDeactivated; Application.DocumentManager.DocumentActivated += DocumentManager_DocumentActivated; Application.DocumentManager.DocumentToBeDestroyed += DocumentManager_DocumentToBeDestroyed; DbService.Init(); InsPointDrawOverrule.Start(); if (palette == null) { insViewModel = new InsViewModel(); insView = new InsView(insViewModel); palette = new InsServicePallete(insView); palette.StateChanged += Palette_StateChanged; } palette.Visible = true; ChangeDocument(doc); }
public static void Stop() { // TODO: Сохранение всех расчетов try { Application.DocumentManager.DocumentToBeDeactivated -= DocumentManager_DocumentToBeDeactivated; Application.DocumentManager.DocumentActivated -= DocumentManager_DocumentActivated; Application.DocumentManager.DocumentToBeDestroyed -= DocumentManager_DocumentToBeDestroyed; } catch { // ignored } //UserSettings.Save(); //Settings.Save(); //palette.Visible = false; foreach (var item in insModels) { try { //item.Value.SaveIns(); item.Value.Dispose(); } catch { // ignored } } //palette = null; //insModels = null; //insViewModel = null; //insView = null; InsPointDrawOverrule.Stop(); //GC.Collect(); Logger.Log.Info($"Закрытие палитры инсоляции."); }