/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) { var ex = new CaliburnException("The handler cannot update availability for this trigger."); Log.Error(ex); throw ex; } Log.Info("Requesting update avaiability for {0}.", actionMessage); var action = FindActionHandler(actionMessage); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, node); trigger.UpdateAvailabilty(isAvailable); }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { if (trigger.Message != this) { var ex = new CaliburnException("The handler cannot update availability for this trigger."); Log.Error(ex); throw ex; } if (Command != null) { CreateActionMessage(); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); } }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { if (trigger.Message != this) { return; } CreateActionMessage(); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); Log.Info("Made handler aware of filters for {0}.", Command); }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { if (trigger.Message != this) { return; } CreateActionMessage(); if (_action.HasTriggerEffects()) { bool isAvailable = _action.ShouldTriggerBeAvailable(_actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); } _action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { if (trigger.Message != this) { throw new CaliburnException("The handler cannot update availability for this trigger."); } if (Command != null) { CreateActionMessage(); if (_action.HasTriggerEffects()) { bool isAvailable = _action.ShouldTriggerBeAvailable(_actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); } } }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) { return; } var action = _host.GetAction(actionMessage); if (action.HasTriggerEffects()) { bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); } action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) { throw new CaliburnException("The handler cannot update availability for this trigger."); } var action = _host.GetAction(actionMessage); if (!action.HasTriggerEffects()) { return; } bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) { return; } var handler = FindActionHandler(actionMessage); bool isAvailable = handler.ShouldTriggerBeAvailable(actionMessage, node); trigger.UpdateAvailabilty(isAvailable); Log.Info("Making handlers aware of {0}.", trigger); var action = handler as IAction; if (action != null) { action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); } }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { if(trigger.Message != this) return; CreateActionMessage(); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); Log.Info("Made handler aware of filters for {0}.", Command); }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { if(trigger.Message != this) { var ex = new CaliburnException("The handler cannot update availability for this trigger."); Log.Error(ex); throw ex; } if (Command != null) { CreateActionMessage(); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, Source); trigger.UpdateAvailabilty(isAvailable); TryUpdateParentAvailability(isAvailable); } }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if(actionMessage == null) return; var handler = FindActionHandler(actionMessage); bool isAvailable = handler.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); Log.Info("Making handlers aware of {0}.", trigger); var action = handler as IAction; if(action != null) action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if(actionMessage == null) { var ex = new CaliburnException("The handler cannot update availability for this trigger."); Log.Error(ex); throw ex; } Log.Info("Requesting update avaiability for {0}.", actionMessage); var action = FindActionHandler(actionMessage); bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); }
/// <summary> /// Makes the filter aware of the <see cref="IMessageTrigger"/>. /// </summary> /// <param name="messageHandler">The message handler.</param> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IRoutedMessageHandler messageHandler, IMessageTrigger trigger) { if (!AffectsTriggers) return; var helper = messageHandler.Metadata.FirstOrDefaultOfType<DependencyObserver>(); if (helper == null) return; if (trigger.Message.RelatesTo(_target)) { //helper.MakeAwareOf(trigger, new[] { _target.Name }); var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) return; //var handler = helper.Host.FindActionHandler(actionMessage); bool isAvailable = Execute(actionMessage, trigger.Node,null); trigger.UpdateAvailabilty(isAvailable); } }
/// <summary> /// Updates the availability of the trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void UpdateAvailability(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) throw new CaliburnException("The handler cannot update availability for this trigger."); var action = _host.GetAction(actionMessage); if (!action.HasTriggerEffects()) return; bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); }
/// <summary> /// Makes the handler aware of a specific trigger. /// </summary> /// <param name="trigger">The trigger.</param> public void MakeAwareOf(IMessageTrigger trigger) { var actionMessage = trigger.Message as ActionMessage; if (actionMessage == null) return; var action = _host.GetAction(actionMessage); if (action.HasTriggerEffects()) { bool isAvailable = action.ShouldTriggerBeAvailable(actionMessage, _node); trigger.UpdateAvailabilty(isAvailable); } action.Filters.HandlerAware.Apply(x => x.MakeAwareOf(this, trigger)); }