using System.Text.Json; using System.Text.Json.Serialization; namespace WinLog.Models; public class AppSettings { public string DateFormat { init; get; } public string Directory { init; get; } public string LogFilter { init; get; } public string[] MessageFilters { init; get; } public string MonitorApplicationResource { init; get; } public string MonitorApplicationSite { init; get; } public int MillisecondsDelay { init; get; } public int RollingMinutes { init; get; } [JsonConstructor] public AppSettings(string dateFormat, string directory, string logFilter, string[] messageFilters, string monitorApplicationResource, string monitorApplicationSite, int millisecondsDelay, int rollingMinutes) { Directory = directory; LogFilter = logFilter; DateFormat = dateFormat; MessageFilters = messageFilters; MonitorApplicationResource = monitorApplicationResource; MonitorApplicationSite = monitorApplicationSite; MillisecondsDelay = millisecondsDelay; RollingMinutes = rollingMinutes; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }