Upgraded projects to .NET 9.0 and added new projects `KBR.Cache`, `KBR.Shared`, and `KBR.Shared.Lite` to the solution. Introduced JWT authentication and OTP handling with new models, services, and configuration options. Updated database schema with new entities `Users` and `RefreshTokens`, and added migrations for schema changes. Implemented caching strategies using `AppDistributedCache` with support for in-memory, SQL Server, and Redis. Enhanced email handling with `MailHelpers` for domain replacement. Updated controllers, repositories, and configuration files to support new features.
28 lines
918 B
C#
28 lines
918 B
C#
using Microsoft.Extensions.Caching.Distributed;
|
|
|
|
namespace KBR.Cache
|
|
{
|
|
public interface IAppDistributedCache
|
|
{
|
|
T Get<T>(string key)
|
|
where T : class;
|
|
|
|
Task<T> GetAsync<T>(string key, CancellationToken cancellationToken = default)
|
|
where T : class;
|
|
|
|
void Remove(string key);
|
|
|
|
Task RemoveAsync(string key, CancellationToken cancellationToken = default);
|
|
|
|
void Set<T>(string key, T obj, DistributedCacheEntryOptions? options = default);
|
|
|
|
Task SetAsync<T>(string key, T obj, DistributedCacheEntryOptions? options = default, CancellationToken cancellationToken = default);
|
|
|
|
TItem GetOrCreate<TItem>(string key, Func<TItem> factory)
|
|
where TItem : class;
|
|
|
|
Task<TItem> GetOrCreateAsync<TItem>(string key, Func<Task<TItem>> factory, CancellationToken cancellationToken = default)
|
|
where TItem : class;
|
|
}
|
|
}
|