feat: Enhance Catalog Lite expiration handling and improve Italian localization
This commit is contained in:
parent
64525f5ead
commit
03dfe0f3a1
4 changed files with 30 additions and 14 deletions
|
|
@ -5,23 +5,35 @@ namespace CatalogLite;
|
|||
|
||||
internal static class ExpirationGuard
|
||||
{
|
||||
private const string GeneratedMetadataKey = "CatalogLiteGeneratedExpirationDate";
|
||||
private const string MetadataKey = "CatalogLiteExpirationDate";
|
||||
|
||||
public static bool IsExpired(out DateOnly? expirationDate)
|
||||
{
|
||||
expirationDate = TryReadExpirationDate();
|
||||
return expirationDate is null || DateOnly.FromDateTime(DateTime.Today) > expirationDate.Value;
|
||||
return expirationDate is null || DateOnly.FromDateTime(DateTime.Now) > expirationDate.Value;
|
||||
}
|
||||
|
||||
private static DateOnly? TryReadExpirationDate()
|
||||
{
|
||||
var value = typeof(Program).Assembly
|
||||
.GetCustomAttributes<AssemblyMetadataAttribute>()
|
||||
.FirstOrDefault(attribute => string.Equals(attribute.Key, MetadataKey, StringComparison.Ordinal))
|
||||
?.Value;
|
||||
if (TryParseDate(BuildExpiration.ExpirationDate, out var generatedDate))
|
||||
{
|
||||
return generatedDate;
|
||||
}
|
||||
|
||||
return DateOnly.TryParseExact(value, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var date)
|
||||
? date
|
||||
var metadata = typeof(Program).Assembly.GetCustomAttributes<AssemblyMetadataAttribute>();
|
||||
var metadataValue = metadata.FirstOrDefault(attribute => string.Equals(attribute.Key, GeneratedMetadataKey, StringComparison.Ordinal))?.Value
|
||||
?? metadata.FirstOrDefault(attribute => string.Equals(attribute.Key, MetadataKey, StringComparison.Ordinal))?.Value;
|
||||
|
||||
return TryParseDate(metadataValue, out var metadataDate)
|
||||
? metadataDate
|
||||
: null;
|
||||
}
|
||||
|
||||
private static bool TryParseDate(string? value, out DateOnly date)
|
||||
{
|
||||
var trimmedValue = value?.Trim();
|
||||
return DateOnly.TryParseExact(trimmedValue, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)
|
||||
|| DateOnly.TryParse(trimmedValue, CultureInfo.CurrentCulture, DateTimeStyles.None, out date);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue