public DateTime GetLastArchivalDate(IFileSystemUtil fileUtil) { if (!LastArchivalDate.Equals(DateTime.MinValue)) { return(LastArchivalDate); } if (!Settings.LastAcquiredFileDate.Equals(DateTime.MinValue)) { LastArchivalDate = Settings.LastAcquiredFileDate; return(LastArchivalDate); } var fileName = Path.GetFileNameWithoutExtension(Settings.SkylineFilePath); var pattern = fileName + "_\\d{4}_\\d{2}.sky.zip"; var regex = new Regex(pattern); var skylineFileDir = Path.GetDirectoryName(Settings.SkylineFilePath); Debug.Assert(skylineFileDir != null); // Look at any existing .sky.zip files to determine the last archival date // Look for shared zip files with file names like <skyline_file_name>_<yyyy>_<mm>.sky.zip var archiveFiles = fileUtil.GetSkyZipFiles(skylineFileDir) .Where(f => regex.IsMatch(Path.GetFileName(f) ?? string.Empty)) .OrderBy(filePath => fileUtil.LastWriteTime(filePath)) .ToList(); LastArchivalDate = archiveFiles.Any() ? fileUtil.LastWriteTime(archiveFiles.Last()) : DateTime.Today; return(LastArchivalDate); }
public DateTime GetLastArchivalDate(IFileSystemUtil fileUtil) { if (!LastArchivalDate.Equals(DateTime.MinValue)) { return LastArchivalDate; } if(!Settings.LastAcquiredFileDate.Equals(DateTime.MinValue)) { LastArchivalDate = Settings.LastAcquiredFileDate; return LastArchivalDate; } var fileName = Path.GetFileNameWithoutExtension(Settings.SkylineFilePath); var pattern = fileName + "_\\d{4}_\\d{2}.sky.zip"; var regex = new Regex(pattern); var skylineFileDir = Path.GetDirectoryName(Settings.SkylineFilePath); Debug.Assert(skylineFileDir != null); // Look at any existing .sky.zip files to determine the last archival date // Look for shared zip files with file names like <skyline_file_name>_<yyyy>_<mm>.sky.zip var archiveFiles = fileUtil.GetSkyZipFiles(skylineFileDir) .Where(f => regex.IsMatch(Path.GetFileName(f) ?? string.Empty)) .OrderBy(filePath => fileUtil.LastWriteTime(filePath)) .ToList(); LastArchivalDate = archiveFiles.Any() ? fileUtil.LastWriteTime(archiveFiles.Last()) : DateTime.Today; return LastArchivalDate; }