void EditModelCore() { var winApplication = (WinApplication)Application; if (!winApplication.ShowViewStrategy.CloseAllWindows()) { return; } var differenceStore = (ModelDifferenceStore)typeof(XafApplication).Invoke(winApplication, "CreateUserModelDifferenceStore"); differenceStore?.SaveDifference(((ModelApplicationBase)winApplication.Model).LastLayer); var oldAspectProvider = ((ModelApplicationBase)winApplication.Model).CurrentAspectProvider; try { ((ModelApplicationBase)winApplication.Model).CurrentAspectProvider = new CurrentAspectProvider(oldAspectProvider.CurrentAspect); using (Form modelEditorForm = ModelEditorViewController.CreateModelEditorForm(winApplication)) { modelEditorForm.ShowDialog(); if (modelEditorForm is IModelEditorSettings) { differenceStore?.SaveDifference(((ModelApplicationBase)winApplication.Model).LastLayer); } } } finally { ((ModelApplicationBase)winApplication.Model).CurrentAspectProvider = oldAspectProvider; } try { winApplication.CallMethod("ShowStartupWindow"); } catch (Exception e) { winApplication.HandleException(e); winApplication.Exit(); } }
protected override Form CreateModelEditorForm() { return(ModelEditorViewController.CreateModelEditorForm(this)); }