Example #1
0
        public static T Load(string filePath, string backupFolder = null, bool createBackup = false, bool createWeeklyBackup = false)
        {
            List <string> fallbackFilePaths = new List <string>();
            string        tempFilePath      = filePath + ".temp";

            fallbackFilePaths.Add(tempFilePath);

            if (!string.IsNullOrEmpty(backupFolder) && Directory.Exists(backupFolder))
            {
                string fileName       = Path.GetFileName(filePath);
                string backupFilePath = Path.Combine(backupFolder, fileName);
                fallbackFilePaths.Add(backupFilePath);

                string fileNameNoExt            = Path.GetFileNameWithoutExtension(fileName);
                string lastWeeklyBackupFilePath = Directory.GetFiles(backupFolder, fileNameNoExt + "-*").OrderBy(x => x).LastOrDefault();
                if (!string.IsNullOrEmpty(lastWeeklyBackupFilePath))
                {
                    fallbackFilePaths.Add(lastWeeklyBackupFilePath);
                }
            }

            T setting = LoadInternal(filePath, fallbackFilePaths);

            if (setting != null)
            {
                setting.FilePath           = filePath;
                setting.IsFirstTimeRun     = string.IsNullOrEmpty(setting.ApplicationVersion);
                setting.IsUpgrade          = !setting.IsFirstTimeRun && Helpers.CompareApplicationVersion(setting.ApplicationVersion) < 0;
                setting.BackupFolder       = backupFolder;
                setting.CreateBackup       = createBackup;
                setting.CreateWeeklyBackup = createWeeklyBackup;
            }

            return(setting);
        }
Example #2
0
        public static T Load(string filePath)
        {
            T setting = LoadInternal(filePath, true);

            if (setting != null)
            {
                setting.FilePath       = filePath;
                setting.IsFirstTimeRun = string.IsNullOrEmpty(setting.ApplicationVersion);
                setting.IsUpgrade      = !setting.IsFirstTimeRun && Helpers.CompareApplicationVersion(setting.ApplicationVersion) < 0;
            }

            return(setting);
        }
Example #3
0
        public static T Load(string filePath, string backupFolder = null, bool createBackup = false, bool createWeeklyBackup = false)
        {
            T setting = LoadInternal(filePath, backupFolder);

            if (setting != null)
            {
                setting.FilePath           = filePath;
                setting.IsFirstTimeRun     = string.IsNullOrEmpty(setting.ApplicationVersion);
                setting.IsUpgrade          = !setting.IsFirstTimeRun && Helpers.CompareApplicationVersion(setting.ApplicationVersion) < 0;
                setting.BackupFolder       = backupFolder;
                setting.CreateBackup       = createBackup;
                setting.CreateWeeklyBackup = createWeeklyBackup;
            }

            return(setting);
        }