/// <summary> /// /// </summary> /// <returns>true to close window, false to keep open</returns> public bool Cancel() { if (m_viewModel.IsDirty && m_viewModel.DataModel != null) { m_viewModel.HasErrors = FormErrors.Count + Errors.Count != 0; Guid g = m_viewModel.DataModel.Configuration.SessionGroupUniqueId; if (m_viewModel.IsConfigurationPersisted) { if (!m_viewModel.OpenFromDB(g)) { return(false); } } else { if (!m_viewModel.Close()) { return(false); } int persistedSessionGroups; using (Microsoft.TeamFoundation.Migration.EntityModel.RuntimeEntityModel context = Microsoft.TeamFoundation.Migration.EntityModel.RuntimeEntityModel.CreateInstance()) { persistedSessionGroups = context.RTSessionGroupSet.Where(x => x.GroupUniqueId.Equals(g)).Count(); } if (persistedSessionGroups > 0) // is persisted { m_viewModel.OpenFromDB(g); } } m_viewModel.HasErrors = false; } return(true); }
public void Import() { if (string.IsNullOrEmpty(ImportPath)) { Status = "Please specify an import path."; } else { ConfigImporter importer = new ConfigImporter(ImportPath, !ImportIncludeRules); try { Configuration config = importer.Import(); if (m_viewModel.OpenFromDB(config.SessionGroupUniqueId)) { m_viewModel.ClearViewModels(); m_viewModel.SystemState = SystemState.ConfigurationSaved; m_viewModel.ShowMigrationView = MigrationStatusViews.Progress; } Status = string.Format("The configuration has been successfully imported. The imported configuration name is '{0}' (session group unique id: {1}).", config.FriendlyName, config.SessionGroupUniqueId); } catch (ConfigNotExistInPackageException) { Status = "There is no configuration file in the configuration package to import from."; } ActiveConfigurationsList.Refresh(); } }
/// <summary> /// Opens a data model for the specified <see cref="ViewModel<TController, TModel>"/>. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="owner">The owner window.</param> /// <param name="openPath">The path from which to open.</param> public static void Open(ShellViewModel viewModel, Window owner) { bool allowOpen = true; if (viewModel.SystemState == SystemState.MigrationProgress && !viewModel.CanStart) { MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show(Properties.ShellResources.StopSessionExistingSession, Properties.ShellResources.StopSessionTitle, MessageBoxButton.YesNo, MessageBoxImage.Stop); if (messageBoxResult == MessageBoxResult.Yes) { if (viewModel.CanStop) { viewModel.Stop(); } else { allowOpen = false; Utilities.ShowError(Properties.Resources.CannotStopError, Properties.Resources.CannotStopCaption); } } else { allowOpen = false; } } if (allowOpen) { // Ask the user which SessionGroupConfig they want to open OpenFromDBDialog dlg = new OpenFromDBDialog(); dlg.Owner = owner; dlg.ShowDialog(); // Load the config and set the selected group run if (dlg.DialogResult == true && dlg.SelectedConfiguration != null) { if (viewModel.OpenFromDB(dlg.SelectedConfiguration.SessionGroupUniqueId)) { viewModel.ClearViewModels(); viewModel.SystemState = SystemState.ConfigurationSaved; viewModel.ShowMigrationView = MigrationStatusViews.Progress; } } } }
/// <summary> /// Opens a data model for the specified <see cref="ViewModel<TController, TModel>"/>. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="owner">The owner window.</param> public static void Open(ShellViewModel viewModel, Window window) { using (TfsMigrationConsolidatedDBEntities context = TfsMigrationConsolidatedDBEntities.CreateInstance()) { Guid lastSessionGroupUniqueId = Properties.Settings.Default.LastSessionGroupUniqueId; int sessionGroupCount = (from sg in context.SessionGroupSet where sg.GroupUniqueId.Equals(lastSessionGroupUniqueId) select sg).Count(); if (sessionGroupCount > 0) { Debug.Assert(sessionGroupCount == 1, "sessionGroupCount != 0"); viewModel.OpenFromDB(lastSessionGroupUniqueId); } else // id was not found in db { OpenFromDBCommand.Open(viewModel, window); } } }