using DotNetDDI.Services.Dhcp; using nietras.SeparatedValues; namespace DotNetDDI.Integrations.Kea; public class KeaDhcp6LeaseHandler : IKeaDhcpLeaseHandler { public DhcpLeaseChange? Handle(in SepReader.Row row) { if (KeaDhcp6Lease.Parse(row) is not { } lease) { return null; } DhcpLeaseIdentifier identifier = lease.DUId switch { string clientId when !string.IsNullOrWhiteSpace(clientId) => new DhcpLeaseClientIdentifier(clientId), _ => new DhcpLeaseHWAddrIdentifier(lease.HWAddr) }; return new(lease.Address, lease.Hostname, identifier, lease.ValidLifetime); } }