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.
29 lines
625 B
C#
29 lines
625 B
C#
using KBR.Shared.Lite.Extensions;
|
|
|
|
namespace KBR.Shared.Cache
|
|
{
|
|
public static class CacheExtensions
|
|
{
|
|
public static byte[] ToByteArray(this object obj)
|
|
{
|
|
if (obj is not null)
|
|
{
|
|
return JsonExtensions.ToUtf8Bytes(obj);
|
|
}
|
|
|
|
return Array.Empty<byte>();
|
|
}
|
|
|
|
public static T? FromByteArray<T>(this byte[] byteArray)
|
|
where T : class
|
|
{
|
|
if (byteArray is null)
|
|
{
|
|
return default;
|
|
}
|
|
|
|
return JsonExtensions.ToObject<T>(byteArray);
|
|
}
|
|
}
|
|
}
|