laatzen/Common/Ui/Common.UI/Infrastructure/Appsettings.cs
2025-06-12 11:03:05 +02:00

62 lines
1.8 KiB
C#

namespace Common.UI.Infrastructure
{
using System;
using System.Configuration;
using System.Linq;
public static class Appsettings
{
private static readonly string dll = typeof(Appsettings).Assembly.Location;
public static string GetSetting(string settingKey)
{
var settingValue = default(string);
try
{
var configuration = ConfigurationManager.OpenExeConfiguration(dll);
var settings = configuration.AppSettings.Settings;
settingValue = settings[settingKey]?.Value;
}
catch (Exception e)
{
AppHost.NLogger.Error(e);
}
return settingValue;
}
public static string SetSetting(string settingKey, string settingValue)
{
try
{
var configuration = ConfigurationManager.OpenExeConfiguration(dll);
var settings = configuration.AppSettings.Settings;
if (!settings.AllKeys.Any(x => x == settingKey))
{
settings.Add(settingKey, string.Empty);
}
settings[settingKey].Value = settingValue;
configuration.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
catch (Exception e)
{
AppHost.NLogger.Error(e);
}
return settingValue;
}
public static string[] GetSIRTComPorts()
=> GetSetting("SIRTComPorts")
?.Split(new[] { ';', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries)
?.Select(x => x?.Trim())
?.ToArray() ?? new string[0];
}
}