public IDisposable SubscribeStatusChangedCore(
     IServiceProvider serviceProvider, Action handler)
 {
     Features.AfterFeatureActivateHandler statusUpdater =
         (oldFeature, newFeature) => handler();
     Features.Instance.AfterFeatureActivate += statusUpdater;
     return(Disposable.Create(() => Features.Instance.AfterFeatureActivate -= statusUpdater));
 }
예제 #2
0
        public IDisposable SubscribeOutboxFeatureCommandStatusChanged(
            IServiceProvider provider, Action handler)
        {
            var outboxSvc = provider.GetService <IActiveOutboxItemService>();

            if (outboxSvc != null)
            {
                EventHandler statusUpdater = (sender, e) => handler();
                Features.AfterFeatureActivateHandler statusUpdater2 =
                    (oldFeature, newFeature) => handler();
                outboxSvc.ActiveOutboxItemsChanged     += statusUpdater;
                Features.Instance.AfterFeatureActivate += statusUpdater2;
                return
                    (Disposable.Create(
                         () =>
                {
                    outboxSvc.ActiveOutboxItemsChanged -= statusUpdater;
                    Features.Instance.AfterFeatureActivate -= statusUpdater2;
                }));
            }
            return(Disposable.Empty);
        }