public IDisposable SubscribeSaveStatusChanged(IServiceProvider provider, Action handler) { var messageEditorSvc = provider.GetService <IMessageEditorService>(); if (messageEditorSvc != null) { SmartApp.EventHandler <IMessageEditorService> statusUpdater = sender => handler(); messageEditorSvc.IsModifiedChanged += statusUpdater; return(Disposable.Create(() => messageEditorSvc.Modified -= statusUpdater)); } return(Disposable.Empty); }
public IDisposable SubscribeForumCommandStatusChanged( IServiceProvider provider, Action handler) { var activeForumSvc = provider.GetService <IActiveForumService>(); if (activeForumSvc != null) { SmartApp.EventHandler <IActiveForumService> statusUpdater = sender => handler(); activeForumSvc.ActiveForumChanged += statusUpdater; return(Disposable.Create( () => activeForumSvc.ActiveForumChanged -= statusUpdater)); } return(Disposable.Empty); }