Catalog/CatalogLite/ExpirationGuard.cs
Maddo 181229aa41
Some checks failed
Build Windows Avalonia / build (push) Failing after 1m43s
Build Windows Avalonia / release (push) Has been skipped
Catalog Lite
2026-05-26 21:47:55 +02:00

27 lines
No EOL
884 B
C#

using System.Globalization;
using System.Reflection;
namespace CatalogLite;
internal static class ExpirationGuard
{
private const string MetadataKey = "CatalogLiteExpirationDate";
public static bool IsExpired(out DateOnly? expirationDate)
{
expirationDate = TryReadExpirationDate();
return expirationDate is null || DateOnly.FromDateTime(DateTime.Today) > expirationDate.Value;
}
private static DateOnly? TryReadExpirationDate()
{
var value = typeof(Program).Assembly
.GetCustomAttributes<AssemblyMetadataAttribute>()
.FirstOrDefault(attribute => string.Equals(attribute.Key, MetadataKey, StringComparison.Ordinal))
?.Value;
return DateOnly.TryParseExact(value, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var date)
? date
: null;
}
}