using Microsoft.Extensions.Configuration; using System.Windows; namespace PamhagenSysCtrl.Helpers { public class Config { private static readonly string[] TrueValues = ["1", "true", "yes", "on"]; private readonly string FileName; public string PlcPort = "COM1"; public string? UpdateUrl = "https://elwig.at/files/pamhagen-sysctrl/?format=json"; public bool UpdateAuto = true; public Config(string filename) { FileName = filename; Read(); } public void Read() { try { var config = new ConfigurationBuilder().AddIniFile(FileName).Build(); PlcPort = config["plc:port"] ?? "COM1"; UpdateUrl = config["update:url"] ?? UpdateUrl; var updateAuto = config["update:auto"]; UpdateAuto = updateAuto == null || TrueValues.Contains(updateAuto.ToLower()); } catch (Exception exc) { MessageBox.Show($"Die Konfigurationsdatei konnte nicht gelesen werden:\n\n{exc.Message}", "Konfigurationsdatei lesen", MessageBoxButton.OK, MessageBoxImage.Error); Application.Current.Shutdown(); } } } }