Ejemplo n.º 1
0
        public Task <ActivatorParameter> FindParameterAsync(string name, string featureName, string activatorType)
        {
            ActivatorParameter parameter = null;

            var entry = _memoryCache.Get(string.Format(FEATURE_CACHE_KEY_FORMAT, featureName));

            if (entry != null)
            {
                var configuration = (Dictionary <Type, Dictionary <string, object> >)_memoryCache
                                    .Get(string.Format(CONFIGURATION_CACHE_KEY_FORMAT, featureName));

                var parameters = configuration.Where(cfg => cfg.Key.Name == activatorType)
                                 .SingleOrDefault()
                                 .Value;

                if (parameters != null && parameters.ContainsKey(name))
                {
                    parameter = new ActivatorParameter()
                    {
                        FeatureName   = featureName,
                        ActivatorType = activatorType,
                        Name          = name,
                        Value         = parameters[name].ToString()
                    };
                }
                else
                {
                    _logger.LogWarning($"The parameter {name} for activator {activatorType} is not present in the store.");
                }
            }
            else
            {
                _logger.LogWarning($"The parameter {name} for activator {activatorType} can't be located because feature {featureName} is not persisted.");
            }

            return(Task.FromResult <ActivatorParameter>(parameter));
        }
Ejemplo n.º 2
0
        public Task <ActivatorParameter> FindParameterAsync(string name, string featureName, string activatorType)
        {
            ActivatorParameter parameter = null;

            using (var client = _clientManager.GetReadOnlyClient())
            {
                var parametersKey = $"xabaril:features:{featureName}:activator:{activatorType}:parameter:{name}";

                var value = client.Get <string>(parametersKey);

                if (value != null)
                {
                    parameter = new ActivatorParameter()
                    {
                        Name          = name,
                        ActivatorType = activatorType,
                        FeatureName   = featureName,
                        Value         = value
                    };
                }
            }

            return(Task.FromResult(parameter));
        }