/// <summary> /// если пришло время сохранить настройки автоматически - сделать это /// </summary> private void CheckAutosave() { if (!terminalIsLoaded) { return; } if (!workspaceIsLoadedOk) { return; } var timeSaved = timeLastAutosave.GetLastHit(); var deltaMils = (DateTime.Now - timeSaved).TotalMilliseconds; if (deltaMils < autosaveIntervalMils) { return; } // если нет изменений if (!SettingsAutosaver.AreSettingsUpdated(timeSaved)) { return; } // выполнить автосохранение var fileName = string.Format(AutosaveFileFormat, timeStarted, DateTime.Now); // почистить старые файлы автосохранения if (PerformAutosave(fileName)) { SettingsAutosaver.CleanupAutosaves(autosaveFolder, maxAutosaveSessions); } // обновить время последнего сохранения timeLastAutosave.Touch(); }
public void AreSettingsUpdated() { var timeLastSaved = UserSettings.Instance.lastTimeModified.GetLastHitIfHitted() ?? DateTime.Now.AddDays(-1); var areUpdated = SettingsAutosaver.AreSettingsUpdated(timeLastSaved); Assert.IsFalse(areUpdated, "AreSettingsUpdated - обновления еще не было"); UserSettings.Instance.WindowSize = new Size(10, 10); areUpdated = SettingsAutosaver.AreSettingsUpdated(timeLastSaved); Assert.IsTrue(areUpdated, "AreSettingsUpdated - обновление таки имело место"); timeLastSaved = UserSettings.Instance.lastTimeModified.GetLastHit(); var chart = new CandleChartControl(); chart.ActivateIndiAddEvent(new FiboForkIndicator()); areUpdated = SettingsAutosaver.AreSettingsUpdated(timeLastSaved); Assert.IsTrue(areUpdated, "AreSettingsUpdated - обновление имело место - были обновлены индюки"); }