Du hast auf den Branch log-test-branch 2026-04-12 20:57:35 +00:00 gepusht
Neuer Pull-Request
Du hast auf den Branch anon-test2 2026-04-12 20:50:35 +00:00 gepusht
Neuer Pull-Request
Dateien
Soft-LTS/Configuration/AppSettings.cs
2026-04-12 17:39:45 +02:00

35 Zeilen
1.1 KiB
C#

namespace PrinterMonitor.Configuration;
public class AppSettings
{
public List<PrinterConfig> Printers { get; set; } = new();
/// <summary>TCP-Port, auf den der Client verbindet (Default: 12164).</summary>
public int TcpTargetPort { get; set; } = 12164;
/// <summary>
/// Prüft die Konfiguration und gibt eine Liste von Fehlern zurück (leer = gültig).
/// </summary>
public List<string> Validate()
{
var errors = new List<string>();
if (TcpTargetPort < 1 || TcpTargetPort > 65535)
errors.Add($"TcpTargetPort muss zwischen 1 und 65535 liegen (ist {TcpTargetPort})");
foreach (var printer in Printers)
errors.AddRange(printer.Validate());
var duplicateNames = Printers
.Where(p => !string.IsNullOrWhiteSpace(p.Name))
.GroupBy(p => p.Name, StringComparer.OrdinalIgnoreCase)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var name in duplicateNames)
errors.Add($"Druckername '{name}' ist mehrfach vergeben");
return errors;
}
}