/// <summary> /// Initializes the <see cref="MonahrqConfiguration"/> class. /// </summary> static MonahrqConfiguration() { try { if (!File.Exists(ConfigFilePath)) { // Create Config Directory if not present. if (!Directory.Exists(ConfigDirectoryPath)) { Directory.CreateDirectory(ConfigDirectoryPath); } // Copy the config file from the User Roaming Directory, if present. var curUserConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); if (File.Exists(curUserConfig.FilePath)) { FileInfo finfo = new FileInfo(curUserConfig.FilePath); finfo.CopyTo(ConfigFilePath); } // File not present in User Roamin Directory; try to find it in the last 'versioned' directory for app. else { var dirPath = curUserConfig.FilePath.Replace("\\user.config", "\\.."); if (Directory.Exists(dirPath)) { List <string> dirs = new List <string>(Directory.EnumerateDirectories(dirPath)); var versions = dirs.Select(d => new Version(d.Substring(d.LastIndexOf("\\") + 1))).ToList(); var latestVersionIndex = versions.IndexOf(versions.Max()); if (latestVersionIndex > -1) { //FileInfo finfo = new FileInfo(dirs[latestVersionIndex] + "\\user.config"); //finfo.CopyTo(ConfigFilePath); var monahrqConfig = UserSettingsConfig.GetMonahrqSectionGroup().Sections.Get(MonahrqConfigurationSection.MonahrqConfigurationSectionSectionName) as MonahrqConfigurationSection; TransformToNewConfig(dirs[latestVersionIndex] + "\\user.config", ConfigFilePath, ref monahrqConfig); Save(monahrqConfig); } } } } // Test that section is valid. var config = UserSettingsConfig; var group = config.GetMonahrqSectionGroup(); var tempMonahrqSetcion = group.Sections.Get(MonahrqConfigurationSection.MonahrqConfigurationSectionSectionName) as MonahrqConfigurationSection; //if (tempMonahrqSetcion != null && !string.IsNullOrEmpty(tempMonahrqSetcion.UpdateScriptToRunAtStartup)) // config.Save(); } catch (ConfigurationErrorsException ex) { var config = UserSettingsConfig; var group = config.GetMonahrqSectionGroup(); group.Sections.Remove(MonahrqConfigurationSection.MonahrqConfigurationSectionSectionName); config.Save(ConfigurationSaveMode.Minimal); } catch (Exception ex) { var config = UserSettingsConfig; var group = config.GetMonahrqSectionGroup(); group.Sections.Remove(MonahrqConfigurationSection.MonahrqConfigurationSectionSectionName); config.Save(ConfigurationSaveMode.Minimal); } }