/// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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);
                }
            }
        }
Beispiel #6
0
        /// <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));
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #13
0
        /// <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);
            }
        }
Beispiel #14
0
        /// <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);
        }
Beispiel #15
0
        /// <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));
        }