init
This commit is contained in:
76
Common/DTS.Common.Utilities/ConfigInitializationHelper.cs
Normal file
76
Common/DTS.Common.Utilities/ConfigInitializationHelper.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System.Diagnostics;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Configuration;
|
||||
using DTS.Common.Utilities.Properties;
|
||||
using DTS.Common.Utilities.Logging;
|
||||
|
||||
namespace DTS.Common.Utilities
|
||||
{
|
||||
public static class ConfigInitializationHelper
|
||||
{
|
||||
public static void UpdateTSRAIRAppSettings(string targetDir, bool launchTSRAIRGoValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
APILogger.Log($"Calling GetNewSettings with targetDir={targetDir}");
|
||||
if (!GetNewSettings(Resources.ApplicationSettings, targetDir, out var result, out var settings, out var config))
|
||||
{
|
||||
APILogger.Log($"failed to updatetsrairappsetting {result}");
|
||||
}
|
||||
|
||||
APILogger.Log($"Calling settings.Get");
|
||||
var setting = settings.Get("LaunchTSRAIRGo");
|
||||
settings.Remove(setting);
|
||||
setting.Value.ValueXml.InnerXml = launchTSRAIRGoValue ? "True" : "False";
|
||||
settings.Add(setting);
|
||||
config.Save(ConfigurationSaveMode.Full);
|
||||
ConfigurationManager.RefreshSection("appSettings");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log($"Failed to update tsr air app settings {ex.Message}");
|
||||
//nothing to do right now
|
||||
}
|
||||
}
|
||||
public static bool GetNewSettings(string settingsType, string targetDir,
|
||||
out string result, out SettingElementCollection newSettings, out Configuration newConfig)
|
||||
{
|
||||
result = string.Empty;
|
||||
newSettings = null;
|
||||
newConfig = null;
|
||||
|
||||
var newPath = string.Empty;
|
||||
try
|
||||
{
|
||||
//Open the new config file just installed
|
||||
newPath = Path.Combine(targetDir, Resources.RegistryDataPROExe);
|
||||
newConfig = ConfigurationManager.OpenExeConfiguration(@newPath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
APILogger.Log($"In catch: {ex.Message}");
|
||||
result = string.Format(Resources.NewSettingsCouldNotBeFound, ex.Message, newPath);
|
||||
return false;
|
||||
}
|
||||
|
||||
APILogger.Log($"newPath & newConfig found; calling GetConfigSettings with {settingsType}");
|
||||
newSettings = GetConfigSettings(settingsType, newConfig);
|
||||
APILogger.Log($"back from GetConfigSettings; newSettings = {newSettings}");
|
||||
if (newSettings != null) return true;
|
||||
|
||||
result = Resources.NewSettingsCouldNotBeProcessed;
|
||||
return false;
|
||||
}
|
||||
private static SettingElementCollection GetConfigSettings(string settingsType, Configuration config)
|
||||
{
|
||||
var clientSettingsSection = new ClientSettingsSection();
|
||||
var configurationSectionGroup = config.SectionGroups[settingsType];
|
||||
if ((configurationSectionGroup != null) && (configurationSectionGroup.Sections[0] != null))
|
||||
{
|
||||
clientSettingsSection = configurationSectionGroup.Sections[0] as ClientSettingsSection;
|
||||
}
|
||||
return clientSettingsSection?.Settings;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user