/// <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));
     }
 }
Beispiel #2
0
        /// <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));
        }