예제 #1
0
        async Task PopulateProviderSummariesForSpecification(string specificationId, IEnumerable <ProviderSummary> allCachedProviders)
        {
            string cacheKey = $"{CacheKeys.ScopedProviderSummariesPrefix}{specificationId}";

            IEnumerable <string> providerIdsAll = await _providerResultsRepositoryPolicy.ExecuteAsync(() =>
                                                                                                      _resultsRepository.GetAllProviderIdsForSpecificationId(specificationId));

            IList <ProviderSummary> providerSummaries = new List <ProviderSummary>();

            foreach (string providerId in providerIdsAll)
            {
                ProviderSummary cachedProvider = allCachedProviders.FirstOrDefault(m => m.Id == providerId);

                if (cachedProvider != null)
                {
                    providerSummaries.Add(cachedProvider);
                }
            }

            await _cacheProvider.KeyDeleteAsync <ProviderSummary>(cacheKey);

            await _cacheProvider.CreateListAsync <ProviderSummary>(providerSummaries, cacheKey);
        }