public IDisposable SubscribeStatusChangedCore( IServiceProvider serviceProvider, Action handler) { Features.AfterFeatureActivateHandler statusUpdater = (oldFeature, newFeature) => handler(); Features.Instance.AfterFeatureActivate += statusUpdater; return(Disposable.Create(() => Features.Instance.AfterFeatureActivate -= statusUpdater)); }
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); }