DOIOU/DOIOU.Server/DataRegistry.cs
2022-11-08 19:01:30 +01:00

22 lines
707 B
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Memory;
namespace DOIOU.Server
{
public class DataRegistry
{
private readonly MemoryCache _cache = new(new MemoryCacheOptions() { ExpirationScanFrequency = TimeSpan.FromMinutes(30) });
public string? Query(string doiou)
{
if (!_cache.TryGetValue(doiou, out string? url))
{
using DataContext db = new();
var record = db.Records.AsNoTracking().SingleOrDefault(r => r.Id == doiou);
_cache.Set(doiou, record?.Url, TimeSpan.FromMinutes(30));
return record?.Url;
}
return url;
}
}
}