Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        public void CleanupAutosaves()
        {
            var zipFileNames = new[] { "2703165731_2703170058.zip", "2703165731_2703170118.zip", "2703165731_2703170408.zip", "2703165731_2703170434.zip", "2703165731_2703170633.zip" };

            foreach (var zipFileName in zipFileNames)
            {
                File.Copy(Path.Combine(testFileFolderPath, zipFileName), Path.Combine(autosaveFolderPath, zipFileName));
            }

            SettingsAutosaver.CleanupAutosaves(autosaveFolderPath, 4);

            var residualFiles = Directory.GetFiles(autosaveFolderPath);

            Assert.AreEqual(4, residualFiles.Length);

            foreach (var residualFile in residualFiles)
            {
                if (!zipFileNames.Skip(1).Contains(residualFile.Split('\\').Last()))
                {
                    Assert.Fail("файл с именем {0} не должен был быть удалён", residualFile);
                }
            }
        }