Initial code commit.

This commit is contained in:
2026-02-03 10:44:31 +08:00
parent 8927c5ae0e
commit d69fe2cc1f
99 changed files with 10839 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using Microsoft.Extensions.Caching.Hybrid;
using Sufi.Demo.PeopleDirectory.Application.Contracts.Services;
namespace Sufi.Demo.PeopleDirectory.Infrastructure.Services
{
public class AppCache(
HybridCache hybridCache
) : IAppCache
{
public ValueTask<T> GetOrAddAsync<T>(string key, Func<CancellationToken, ValueTask<T>> factory,
IEnumerable<string>? tags = null, TimeSpan? absoluteExpireTime = null)
{
var options = new HybridCacheEntryOptions
{
Expiration = absoluteExpireTime ?? TimeSpan.FromSeconds(30),
};
return hybridCache.GetOrCreateAsync<T>(key, factory, options, tags);
}
public ValueTask RemoveAsync(string key)
{
return hybridCache.RemoveAsync(key);
}
public ValueTask RemoveByTagAsync(string tag)
{
return hybridCache.RemoveByTagAsync(tag);
}
public ValueTask ResetAsync()
{
return hybridCache.RemoveByTagAsync("*");
}
}
}