internal static IObservable <Unit> Connect(this ApplicationModulesManager applicationModulesManager, XafApplication application) { if (application == null) { return(Observable.Empty <Unit>()); } var listViewProcessSelectedItem = application.WhenMasterDetailListViewProcessSelectedItem().Publish().AutoConnect(); return(application.WhenSynchronizeDetailView() .Merge(listViewProcessSelectedItem.ToUnit()) .Merge(application.DisableListViewController("ListViewFastCallbackHandlerController")) .Merge(application.DisableDetailViewViewController("ActionsFastCallbackHandlerController")) .Merge(application.WhenSaveAction()) .Merge(application.WhenRefreshListView()) .Merge(applicationModulesManager.RegisterActions().ToUnit()) .ToUnit()); }