internal async Task <IEnumerable <KeyContainer> > FilterAndDeleteRetiredKeysAsync(IEnumerable <KeyContainer> keys) { var retired = keys .Where(x => { var age = _clock.GetAge(x.Created); var isRetired = _options.IsRetired(age); return(isRetired); }) .ToArray(); if (retired.Any()) { if (_logger.IsEnabled(LogLevel.Trace)) { var ids = retired.Select(x => x.Id).ToArray(); _logger.LogTrace("Filtered retired keys from store: {kids}", ids.Aggregate((x, y) => $"{x},{y}")); } if (_options.DeleteRetiredKeys) { var ids = retired.Select(x => x.Id).ToArray(); if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Deleting retired keys from store: {kids}", ids.Aggregate((x, y) => $"{x},{y}")); } await DeleteKeysAsync(ids); } } var result = keys.Except(retired).ToArray(); return(result); }
internal async Task <IEnumerable <RsaKeyContainer> > FilterAndDeleteRetiredKeysAsync(IEnumerable <RsaKeyContainer> keys) { var retired = keys .Where(x => { var age = _clock.GetAge(x.Created); var isRetired = _options.IsRetired(age); return(isRetired); }) .ToArray(); if (_options.DeleteRetiredKeys && retired.Any()) { await DeleteKeysAsync(retired.Select(x => x.Id)); } var result = keys.Except(retired); return(result); }