private bool Evaluate(IDynamicBinding <ICondition> binding) { using (var context = binding.CreateDynamicContext(this)) { context.AddInterfaceLayer(this.Owner); context.AddInterfaceLayer(this.Owner); var isBindingValid = binding.Evaluate(context); var isValid = false; if (!isBindingValid) { tracer.Warn(Resources.MenuAutomation_ConditionBindingFailed, this.Name, binding.UserMessage, ObjectDumper.ToString(binding.EvaluationResults, 5)); } else { isValid = binding.Value.Evaluate(); if (!isValid) { tracer.Verbose(Resources.MenuAutomation_ConditionEvaluatedFalse, this.Name, binding.UserMessage, ObjectDumper.ToString(binding.EvaluationResults, 5)); } } return(isBindingValid && isValid); } }
/// <summary> /// Creates the dynamic context and adds the extension and its owner as dynamic context values. /// </summary> public static IDynamicBindingContext CreateDynamicContext <T>(this IDynamicBinding <T> binding, IAutomationExtension extension) where T : class { Guard.NotNull(() => binding, binding); Guard.NotNull(() => extension, extension); var context = binding.CreateDynamicContext(); context.AddAutomation(extension); return(context); }
public void Initialize() { this.tracer = Mock.Of <ITracer>(); this.context = Mock.Of <IDynamicBindingContext>(); this.valueProvider = Mock.Of <IValueProvider>(vp => (string)vp.Evaluate() == "Foo"); this.binding = Mock.Of <IDynamicBinding <IValueProvider> >(binding => binding.Evaluate(It.IsAny <IDynamicBindingContext>()) == true && binding.Value == this.valueProvider && binding.CreateDynamicContext() == this.context); this.bindingFactory = Mock.Of <IBindingFactory>(factory => factory.CreateBinding <IValueProvider>(It.IsAny <IBindingSettings>()) == this.binding); }
private bool Evaluate(IDynamicBinding <ICondition> binding, IEvent <EventArgs> args) { using (var context = binding.CreateDynamicContext(this)) { AddEventArgsToBindingContext(args, context); var result = binding.Evaluate(context) && binding.Value.Evaluate(); if (!result) { tracer.Verbose(Resources.MenuAutomation_ConditionEvaluatedFalse, this.Name, binding.UserMessage, ObjectDumper.ToString(binding.EvaluationResults, 5)); } return(result); } }
private ICondition EvaluateBinding(IDynamicBinding <ICondition> binding) { using (var context = binding.CreateDynamicContext(this)) { context.AddInterfaceLayer(this.Owner); if (!binding.Evaluate(context)) { tracer.Warn(Resources.EventAutomation_ConditionBindingFailed, this.Name, binding.UserMessage, ObjectDumper.ToString(binding.EvaluationResults, 5)); return(InvalidBindingCondition.Instance); } else { return(binding.Value); } } }