public void PopulateContextEntries(IEnumerable <string> contexts, List <CacheContextEntry> entries)
        {
            if (contexts.Any(ctx => String.Equals(ctx, "features", StringComparison.OrdinalIgnoreCase)))
            {
                // Add a hash of the enabled features
                entries.Add(new CacheContextEntry("features", _featureHash.GetFeatureHashAsync().Result.ToString(CultureInfo.InvariantCulture)));

                // If we track any changed feature, we don't need to look into specific ones
                return;
            }

            foreach (var context in contexts.Where(ctx => ctx.StartsWith(FeaturesPrefix, StringComparison.OrdinalIgnoreCase)))
            {
                var featureName = context.Substring(FeaturesPrefix.Length);
                var hash        = _featureHash.GetFeatureHashAsync(featureName).Result.ToString(CultureInfo.InvariantCulture);

                entries.Add(new CacheContextEntry("features", hash));
            }
        }
Beispiel #2
0
        public async Task PopulateContextEntriesAsync(IEnumerable <string> contexts, List <CacheContextEntry> entries)
        {
            if (contexts.Any(ctx => string.Equals(ctx, "features", StringComparison.OrdinalIgnoreCase)))
            {
                // Add a hash of the enabled features
                var hash = await _featureHash.GetFeatureHashAsync();

                entries.Add(new CacheContextEntry("features", hash.ToString(CultureInfo.InvariantCulture)));
            }
            else
            {
                foreach (var context in contexts.Where(ctx => ctx.StartsWith(FeaturesPrefix, StringComparison.OrdinalIgnoreCase)))
                {
                    var featureName = context.Substring(FeaturesPrefix.Length);
                    var hash        = await _featureHash.GetFeatureHashAsync(featureName);

                    entries.Add(new CacheContextEntry("features", hash.ToString(CultureInfo.InvariantCulture)));
                }
            }
        }