namespace KonSoft.InternalGateway.Aggregations.Base; public abstract class AggregateServiceBase { private readonly IAggregateRemoteService _remoteService; public AggregateServiceBase(IAggregateRemoteService remoteService) { _remoteService = remoteService; } public virtual async Task> GetMultipleFromRemoteAsync(List missingKeys, Dictionary endpoints) { return await _remoteService .GetMultipleAsync(endpoints .Where(kv => missingKeys.Contains(kv.Key)) .ToDictionary(k => k.Key, v => v.Value)); } public List GetMissingServiceKeys( IDictionary serviceNamesWithData, Dictionary serviceNamesWithUrls) { List missingKeysInCache = serviceNamesWithUrls.Keys.Except(serviceNamesWithData.Keys).ToList(); List missingKeysInUrls = serviceNamesWithData.Keys.Except(serviceNamesWithUrls.Keys).ToList(); return missingKeysInCache.Concat(missingKeysInUrls).ToList(); } }