public object Expand(string value)
        {
            var       match = VariableRegex.Match(value);
            var       key   = match.Groups["Variable"].Value;
            ModelData data  = null;

            if (_contexts.Any())
            {
                var expansionContext = _contexts.Peek();
                data = expansionContext.Data;

                if (expansionContext.Has(key))
                {
                    return(expansionContext.Get(key));
                }
            }

            var context  = new VariableExpansionContext(_services, key, data);
            var variable = _registry.Find(context);

            if (variable == null)
            {
                return(value);
            }

            return(variable.Expand(context));
        }
Exemple #2
0
 public IMappingVariable Find(VariableExpansionContext context)
 {
     return(_sources
            .SelectMany(_ => _.Variables())
            .LastOrDefault(_ => _.Matches(context)));
 }
 public bool Matches(VariableExpansionContext context)
 {
     return(context.Data != null && context.Key.StartsWith("this."));
 }
        public object Expand(VariableExpansionContext context)
        {
            var key = context.Key.Substring("this.".Length);

            return(context.Data[key]);
        }
 public override object Expand(VariableExpansionContext context)
 {
     return(context.Service <IClarifySession>().UserName);
 }