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)); }
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); }