diff --git a/EnvelopeGenerator.Extensions/MemoryCacheExtensions.cs b/EnvelopeGenerator.Extensions/MemoryCacheExtensions.cs index acecfe86..f9b0a1ac 100644 --- a/EnvelopeGenerator.Extensions/MemoryCacheExtensions.cs +++ b/EnvelopeGenerator.Extensions/MemoryCacheExtensions.cs @@ -6,11 +6,20 @@ public static class MemoryCacheExtensions { private static readonly Guid BaseId = Guid.NewGuid(); - public static IDictionary GetEnumAsDictionary(this IMemoryCache memoryCache, string key = "", params IEnumerable[] ignores) + public static IDictionary GetEnumAsDictionary(this IMemoryCache memoryCache, string key = "", params object[] ignores) where TEnum : Enum => memoryCache.GetOrCreate(BaseId + typeof(TEnum).FullName + key, _ => { - List mergedIgnores = ignores.SelectMany(x => x).ToList(); + var mergedIgnores = new List(); + + foreach (var ignore in ignores) + { + if (ignore is IEnumerable ignoreList) + mergedIgnores.AddRange(ignoreList); + else if (ignore is TEnum ignoreVal) + mergedIgnores.Add(ignoreVal); + } + return Enum.GetValues(typeof(TEnum)) .Cast() .Where(e => !mergedIgnores.Contains(e)) diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs index d4d4ec2c..a7292e08 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs @@ -18,8 +18,6 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers; [Authorize] public class HistoryController : ControllerBase { - private readonly ILogger _logger; - private readonly IEnvelopeHistoryService _service; private readonly IMemoryCache _memoryCache; @@ -27,11 +25,10 @@ public class HistoryController : ControllerBase /// /// Konstruktor für den HistoryController. /// - /// Der Logger, der für das Protokollieren von Informationen verwendet wird. /// Der Dienst, der für die Verarbeitung der Umschlaghistorie verantwortlich ist. - public HistoryController(ILogger logger, IEnvelopeHistoryService service, IMemoryCache memoryCache) + /// + public HistoryController(IEnvelopeHistoryService service, IMemoryCache memoryCache) { - _logger = logger; _service = service; _memoryCache = memoryCache; } @@ -54,7 +51,7 @@ public class HistoryController : ControllerBase [Authorize] public IActionResult GetReferenceTypes(ReferenceType? referenceType = null) { - return referenceType is null ? Ok(_memoryCache.GetEnumAsDictionary()) : Ok(referenceType.ToString()); + return referenceType is null ? Ok(_memoryCache.GetEnumAsDictionary("gen.api", ReferenceType.Unknown)) : Ok(referenceType.ToString()); } ///