private bool EvaluateScreenAndConditions(Screen screen, ConditionsConfiguration condition)
        {
            if (condition.Primary.HasValue && condition.Primary.Value != screen.Primary)
            {
                return(false);
            }

            if (condition.Expression != null && !Eval.Execute <bool>(condition.Expression, screen.Bounds))
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
 public IConditionsMatcher CreateConditionMatcher(ConditionsConfiguration conditions)
 {
     return(lifetimeScope.Resolve <IConditionsMatcher>(new Parameter[] {
         new TypedParameter(typeof(ConditionsConfiguration), conditions)
     }));
 }
예제 #3
0
 public ConditionsMatcher(ConditionsConfiguration conditionsConfiguration, IExpressionBuilder expressionBuilder, IMatchValueExtractor matchValueExtractor)
 {
     this.conditionsConfiguration = conditionsConfiguration;
     this.matchValueExtractor     = matchValueExtractor;
     expression = expressionBuilder.Build(conditionsConfiguration.Expression);
 }