winlog/Models/AppSettings.cs
2024-10-21 11:55:12 -07:00

38 lines
1.4 KiB
C#

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