void.cat/VoidCat/Services/BasicCacheStore.cs

30 lines
627 B
C#
Raw Normal View History

2022-03-07 13:38:53 +00:00
using VoidCat.Services.Abstractions;
namespace VoidCat.Services;
public abstract class BasicCacheStore<TStore> : IBasicStore<TStore>
{
protected readonly ICache _cache;
protected BasicCacheStore(ICache cache)
{
_cache = cache;
}
public virtual ValueTask<TStore?> Get(Guid id)
{
return _cache.Get<TStore>(MapKey(id));
}
public virtual ValueTask Set(Guid id, TStore obj)
{
return _cache.Set(MapKey(id), obj);
}
public virtual ValueTask Delete(Guid id)
{
return _cache.Delete(MapKey(id));
}
public abstract string MapKey(Guid id);
}