PortBlog.API/Shared/KBR.Shared/Cache/CacheHelpers.cs
Bangara Raju Kottedi 3a7edb23c7 Add JWT, OTP, and caching features
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.
2025-11-22 06:52:59 +05:30

21 lines
808 B
C#

using KBR.Shared.Cache.Models;
using Microsoft.Extensions.Caching.Distributed;
namespace KBR.Shared.Cache
{
public static class CacheHelpers
{
private static readonly string _userSessions = nameof(_userSessions);
private static string UserSessionsKey(string key) => $"{_userSessions}-{key}";
public static async Task SetUserSessionsCacheAsync(IAppDistributedCache cache, string userId, UserSessionModel sessions, CancellationToken cancellationToken = default)
{
await cache.SetAsync(UserSessionsKey(userId), sessions, GetOptions(), cancellationToken);
}
private static DistributedCacheEntryOptions GetOptions()
{
return new DistributedCacheEntryOptions { AbsoluteExpiration = DateTime.MaxValue };
}
}
}