namespace AAIntegration.SimmonsBank.API.Services; using Microsoft.Extensions.Caching.Memory; public interface ICacheService { int GetClientIdFromApiKey(string apiKey); } public class CacheService : ICacheService { private readonly IMemoryCache _memoryCache; private readonly IUserService _userService; public CacheService(IMemoryCache memoryCache, IUserService userService) { _memoryCache = memoryCache; _userService = userService; } public int GetClientIdFromApiKey(string apiKey) { if (!_memoryCache.TryGetValue>($"Authentication_ApiKeys", out var internalKeys)) { internalKeys = _userService.GetAllApiKeys(); _memoryCache.Set($"Authentication_ApiKeys", internalKeys); } if (!internalKeys.TryGetValue(apiKey, out var clientId)) { return -1; } return clientId; } /*public void InvalidateApiKey(string apiKey) { if (_memoryCache.TryGetValue>("Authentication_ApiKeys", out var internalKeys)) { if (internalKeys.ContainsKey(apiKey)) { internalKeys.Remove(apiKey); _memoryCache.Set("Authentication_ApiKeys", internalKeys); } } _userService.InvalidateApiKey(apiKey); }*/ }