Add memory caching support in HistoryController

- Updated `EnvelopeGenerator.Extensions.csproj` to include
  `Microsoft.Extensions.Caching.Memory` package.
- Refactored `HistoryController` to use `IMemoryCache` for
  caching functionality.
- Replaced manual dictionary creation in `GetReferenceTypes`
  with a call to `GetEnumAsDictionary<ReferenceType>()`.
- Changed enum type in `GetEnvelopeStatus` to
  `ReferenceType` for consistency.
- Introduced `MemoryCacheExtensions` class with
  `GetEnumAsDictionary<TEnum>` method for efficient enum
  to dictionary conversion.
This commit is contained in:
Developer 02
2025-05-08 11:30:46 +02:00
parent 3a1fe45524
commit 3035ec7e9c
3 changed files with 32 additions and 16 deletions

View File

@@ -0,0 +1,21 @@
using Microsoft.Extensions.Caching.Memory;
namespace EnvelopeGenerator.Extensions;
public static class MemoryCacheExtensions
{
public static IDictionary<string, int> GetEnumAsDictionary<TEnum>(this IMemoryCache memoryCache)
where TEnum : Enum
{
var referenceTypes = Enum.GetValues(typeof(TEnum))
.Cast<TEnum>()
.ToDictionary(rt =>
{
var key = rt.ToString();
var keyAsCamelCase = char.ToLowerInvariant(key[0]) + key[1..];
return keyAsCamelCase;
}, rt => Convert.ToInt32(rt));
return referenceTypes;
}
}