Example #1
0
        public void SubscribeToComponentStateRequest <T>(Action <ComponentStateRequest <T> > componentStateRequestHandler,
                                                         ComponentId componentId = ComponentId.UNDEFINED,
                                                         ThreadType threadType   = ThreadType.PublisherThread) where T : RequestedComponentState
        {
            Predicate <ComponentStateRequest <T> > filter = null;

            if (componentId != ComponentId.UNDEFINED)
            {
                filter = chg => chg.Id == componentId;
            }
            _eventAggregator.GetEvent <ComponentStateRequestEvent <ComponentStateRequest <T> > >().Unsubscribe(componentStateRequestHandler);
            _eventAggregator.GetEvent <ComponentStateRequestEvent <ComponentStateRequest <T> > >().Subscribe(componentStateRequestHandler,
                                                                                                             threadType.ToThreadOption(), true, filter);
        }
Example #2
0
        public void SubscribeToComponentStateChange <T>(Action <ComponentStateChange <T> > componentStateChangeHandler,
                                                        ComponentId componentId = ComponentId.UNDEFINED,
                                                        ThreadType threadType   = ThreadType.PublisherThread) where T : ComponentState
        {
            Predicate <ComponentStateChange <T> > filter = null;

            if (componentId != ComponentId.UNDEFINED)
            {
                filter = chg => chg.Id == componentId;
            }

            _eventAggregator.GetEvent <ComponentStateChangeEvent <ComponentStateChange <T> > >().Unsubscribe(componentStateChangeHandler);
            _eventAggregator.GetEvent <ComponentStateChangeEvent <ComponentStateChange <T> > >().Subscribe(componentStateChangeHandler,
                                                                                                           threadType.ToThreadOption(), true, filter);

            if (componentId != ComponentId.UNDEFINED)
            {
                var currentComponentState = CurrentComponentState <T>(componentId);
                if (currentComponentState != null)
                {
                    componentStateChangeHandler(currentComponentState.ToComponentStateChange());
                }
            }
        }