private object ModelViewSerializable(CreateViewViewModel createViewViewModel) { throw new NotImplementedException(); }
public override void NextBtnCommandAction(Object param) { switch (CurrentUiStepId) { case 0: CurrentUiStepId = 1; PrevBtnEnabled = true; NextBtnEnabled = false; SaveBtnEnabled = false; if (SelectDbContextUC == null) { SelectDbContextViewModel dataContext = new SelectDbContextViewModel(Dte); dataContext.UiCommandButtonVisibility = Visibility.Collapsed; dataContext.UiCommandCaption3 = "NameSpace: " + (InvitationUC.DataContext as InvitationViewModel).DefaultProjectNameSpace; string folder = (InvitationUC.DataContext as InvitationViewModel).DestinationFolder; if (!string.IsNullOrEmpty(folder)) { dataContext.UiCommandCaption3 = dataContext.UiCommandCaption3 + "." + folder.Replace("\\", "."); } SelectDbContextUC = new UserControlSelectSource(dataContext); dataContext.IsReady.IsReadyEvent += SelectDbContextViewModel_IsReady; } (SelectDbContextUC.DataContext as SelectDbContextViewModel).DoAnaliseDbContext(); this.CurrentUserControl = SelectDbContextUC; this.OnPropertyChanged("CurrentUserControl"); break; case 1: CurrentUiStepId = 2; PrevBtnEnabled = true; NextBtnEnabled = false; SaveBtnEnabled = false; if (SelectSourceEntityUC == null) { SelectEntityForGivenDbContextViewModel dataContext = new SelectEntityForGivenDbContextViewModel(Dte); dataContext.UiCommandButtonVisibility = Visibility.Collapsed; dataContext.IsReady.IsReadyEvent += SelectEntityForGivenDbContextViewModel_IsReady; SelectSourceEntityUC = new UserControlSelectSource(dataContext); } (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedDbContext = (SelectDbContextUC.DataContext as SelectDbContextViewModel).SelectedCodeElement; (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).CheckIsReady(); OnDbContextChanged(); this.CurrentUserControl = SelectSourceEntityUC; this.OnPropertyChanged("CurrentUserControl"); break; case 2: CurrentUiStepId = 3; PrevBtnEnabled = true; NextBtnEnabled = false; SaveBtnEnabled = false; if (SelectExistingUC == null) { SelectExistingViewModel dataContext = new SelectExistingViewModel(Dte); dataContext.IsReady.IsReadyEvent += SelectEntityForGivenDbContextViewModel_IsReady; SelectExistingUC = new UserControlSelectExisting(dataContext); } (SelectExistingUC.DataContext as SelectExistingViewModel).CurrentDbContext = CurrentDbContext; (SelectExistingUC.DataContext as SelectExistingViewModel).SelectedEntity = (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedCodeElement; (SelectExistingUC.DataContext as SelectExistingViewModel).DestinationProject = (InvitationUC.DataContext as InvitationViewModel).DestinationProject; (SelectExistingUC.DataContext as SelectExistingViewModel).DefaultProjectNameSpace = (InvitationUC.DataContext as InvitationViewModel).DefaultProjectNameSpace; (SelectExistingUC.DataContext as SelectExistingViewModel).DestinationFolder = (InvitationUC.DataContext as InvitationViewModel).DestinationFolder; (SelectExistingUC.DataContext as SelectExistingViewModel).DbSetProppertyName = (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedProppertyName; (SelectExistingUC.DataContext as SelectExistingViewModel).DoAnalize(); this.CurrentUserControl = SelectExistingUC; this.OnPropertyChanged("CurrentUserControl"); break; case 3: CurrentUiStepId = 4; PrevBtnEnabled = true; NextBtnEnabled = true; SaveBtnEnabled = false; if (CreateViewUC == null) { CreateViewViewModel dataContext = new CreateViewViewModel(Dte); dataContext.IsReady.IsReadyEvent += SelectEntityForGivenDbContextViewModel_IsReady; dataContext.DestinationProject = (InvitationUC.DataContext as InvitationViewModel).DestinationProject; dataContext.DefaultProjectNameSpace = (InvitationUC.DataContext as InvitationViewModel).DefaultProjectNameSpace; dataContext.DestinationFolder = (InvitationUC.DataContext as InvitationViewModel).DestinationFolder; CreateViewUC = new UserControlCreateView(dataContext); } (CreateViewUC.DataContext as CreateViewViewModel).SelectedDbContext = (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedDbContext; (CreateViewUC.DataContext as CreateViewViewModel).SelectedEntity = (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedCodeElement; (CreateViewUC.DataContext as CreateViewViewModel).CurrentDbContext = CurrentDbContext; (CreateViewUC.DataContext as CreateViewViewModel).DestinationDbSetProppertyName = (SelectSourceEntityUC.DataContext as SelectEntityForGivenDbContextViewModel).SelectedProppertyName; ModelViewSerializable srcModel = null; if ((SelectExistingUC.DataContext as SelectExistingViewModel).IsSelectExisting) { srcModel = (SelectExistingUC.DataContext as SelectExistingViewModel).SelectedModel; } (CreateViewUC.DataContext as CreateViewViewModel).DoAnalize(srcModel); this.CurrentUserControl = CreateViewUC; this.OnPropertyChanged("CurrentUserControl"); break; case 4: string checkErrorsText = (CreateViewUC.DataContext as CreateViewViewModel).SelectedModel.CheckCorrect(); if (!string.IsNullOrEmpty(checkErrorsText)) { (CreateViewUC.DataContext as CreateViewViewModel).CheckErrorsText = checkErrorsText; return; } CurrentUiStepId = 5; PrevBtnEnabled = true; NextBtnEnabled = true; SaveBtnEnabled = false; if (T4EditorUC == null) { string TemplatesFld = TemplatePathHelper.GetTemplatePath(); string templatePath = Path.Combine(TemplatesFld, "ViewModelTmplst"); T4EditorViewModel dataContext = new T4EditorViewModel(templatePath); dataContext.IsReady.IsReadyEvent += T4EditorViewModel_IsReady; T4EditorUC = new UserControlT4Editor(dataContext); } (T4EditorUC.DataContext as T4EditorViewModel).CheckIsReady(); this.CurrentUserControl = T4EditorUC; this.OnPropertyChanged("CurrentUserControl"); break; case 5: CurrentUiStepId = 6; PrevBtnEnabled = true; NextBtnEnabled = false; IVsThreadedWaitDialog2 aDialog = null; bool aDialogStarted = false; if (this.DialogFactory != null) { this.DialogFactory.CreateInstance(out aDialog); if (aDialog != null) { aDialogStarted = aDialog.StartWaitDialog("Generation started", "VS is Busy", "Please wait", null, "Generation started", 0, false, true) == VSConstants.S_OK; } } if (GenerateUC == null) { GenerateViewModel generateViewModel = new GenerateViewModel(); generateViewModel.IsReady.IsReadyEvent += GenerateViewModel_IsReady; GenerateUC = new UserControlGenerate(generateViewModel); } (GenerateUC.DataContext as GenerateViewModel).GenText = (T4EditorUC.DataContext as T4EditorViewModel).T4TempateText; try { (CreateViewUC.DataContext as CreateViewViewModel).SelectedModel.RootEntityDbContextPropertyName = (CreateViewUC.DataContext as CreateViewViewModel).DestinationDbSetProppertyName; (GenerateUC.DataContext as GenerateViewModel).DoGenerateViewModel(Dte, TextTemplating, null, (T4EditorUC.DataContext as T4EditorViewModel).T4TempatePath, (CreateViewUC.DataContext as CreateViewViewModel).SelectedModel); NextBtnEnabled = true; if (aDialogStarted) { int iOut; aDialog.EndWaitDialog(out iOut); } MessageBox.Show(SuccessNotification, "Done", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception e) { if (aDialogStarted) { int iOut; aDialog.EndWaitDialog(out iOut); } MessageBox.Show("Error: " + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } finally { this.CurrentUserControl = GenerateUC; this.OnPropertyChanged("CurrentUserControl"); } break; case 6: CurrentUiStepId = 7; PrevBtnEnabled = true; NextBtnEnabled = true; SaveBtnEnabled = false; if (T4EditorPageUC == null) { string TemplatesFld = TemplatePathHelper.GetTemplatePath(); string templatePath = Path.Combine(TemplatesFld, "ViewPageModelTmplst"); T4EditorViewModel dataContext = new T4EditorViewModel(templatePath); dataContext.IsReady.IsReadyEvent += T4EditorViewModel_IsReady; T4EditorPageUC = new UserControlT4Editor(dataContext); } (T4EditorPageUC.DataContext as T4EditorViewModel).CheckIsReady(); this.CurrentUserControl = T4EditorPageUC; this.OnPropertyChanged("CurrentUserControl"); break; case 7: CurrentUiStepId = 8; PrevBtnEnabled = true; NextBtnEnabled = true; IVsThreadedWaitDialog2 aaDialog = null; bool aaDialogStarted = false; if (this.DialogFactory != null) { this.DialogFactory.CreateInstance(out aaDialog); if (aaDialog != null) { aaDialogStarted = aaDialog.StartWaitDialog("Generation started", "VS is Busy", "Please wait", null, "Generation started", 0, false, true) == VSConstants.S_OK; } } if (GeneratePageUC == null) { GenerateViewPageModel generateViewModel = new GenerateViewPageModel(); generateViewModel.IsReady.IsReadyEvent += GenerateViewModel_IsReady; GeneratePageUC = new UserControlGenerate(generateViewModel); } (GeneratePageUC.DataContext as GenerateViewPageModel).GenText = (T4EditorPageUC.DataContext as T4EditorViewModel).T4TempateText; try { (GeneratePageUC.DataContext as GenerateViewPageModel).GeneratedModelView = (GenerateUC.DataContext as GenerateViewModel).GeneratedModelView; (GeneratePageUC.DataContext as GenerateViewPageModel).DoGenerateViewPageModel(Dte, TextTemplating, null, (T4EditorPageUC.DataContext as T4EditorViewModel).T4TempatePath); if (aaDialogStarted) { int iOut; aaDialog.EndWaitDialog(out iOut); } } catch (Exception e) { if (aaDialogStarted) { int iOut; aaDialog.EndWaitDialog(out iOut); } MessageBox.Show("Error: " + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } finally { this.CurrentUserControl = GeneratePageUC; this.OnPropertyChanged("CurrentUserControl"); } break; case 8: CurrentUiStepId = 1; NextBtnCommandAction(param); break; default: break; } }