コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        /// <summary>
        /// Opens a data model for the specified <see cref="ViewModel&lt;TController, TModel&gt;"/>.
        /// </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;
                    }
                }
            }
        }
コード例 #4
0
 /// <summary>
 /// Opens a data model for the specified <see cref="ViewModel&lt;TController, TModel&gt;"/>.
 /// </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);
         }
     }
 }