Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }