/// <summary> /// Evaluates given expression over given logical term source /// </summary> /// <param name="expression"> </param> /// <param name="source"> </param> /// <returns> </returns> public bool Eval(string expression, object source) { lock (this) { source = source ?? new Dictionary <string, object>(); if (!(source is ILogicTermSource)) { source = new DictionaryTermSource <object>(source.ToDict()); } var parsedexpression = parser.Parse(expression); return(parsedexpression.Eval((ILogicTermSource)source)); } }
/// <summary> /// Проверяет условные импорты /// </summary> /// <param name="config"></param> /// <returns></returns> public bool Match(IScope config) { if (string.IsNullOrWhiteSpace(Condition)) { return(true); } if (null == config) { return(true); } var src = new DictionaryTermSource <object>(config); return(logical.Eval(Condition, src)); }