Exemplo n.º 1
0
        /// <summary>
        /// Performs reverting local files to files under source control</summary>
        /// <param name="doing">True iff doing the command</param>
        /// <returns>True iff any documents reverted or can be reverted</returns>
        protected virtual bool DoRevert(bool doing)
        {
            if (SourceControlService == null || SourceControlContext == null)
            {
                return(false);
            }

            foreach (IResource resource in SourceControlContext.Resources)
            {
                SourceControlStatus status = GetStatus(resource);
                if (status != SourceControlStatus.CheckedOut && status != SourceControlStatus.Added)
                {
                    return(false);
                }
            }

            if (doing)
            {
                // user must confirm revert
                DialogResult dialogResult = MessageBox.Show(m_mainForm,
                                                            "All changes will be lost. Do you want to proceed?".Localize(),
                                                            "Proceed with Revert?".Localize(),
                                                            MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    foreach (IResource resource in SourceControlContext.Resources)
                    {
                        SourceControlStatus status = GetStatus(resource);
                        if (status == SourceControlStatus.CheckedOut || status == SourceControlStatus.Added)
                        {
                            SourceControlService.Revert(resource.Uri);
                            Reload(resource);
                        }
                    }
                }
            }

            return(true);
        }
        /// <summary>
        /// Perform the Revert command</summary>
        /// <param name="doing">True to perform the Revert; false to test whether Revert can be done</param>
        /// <returns>True iff Revert can be done or was done</returns>
        protected virtual bool DoRevert(bool doing)
        {
            if (SourceControlService == null || SourceControlContext == null)
            {
                return(false);
            }

            foreach (IResource resource in SourceControlContext.Resources)
            {
                SourceControlStatus status = GetStatus(resource);
                if (status != SourceControlStatus.CheckedOut && status != SourceControlStatus.Added && status != SourceControlStatus.Deleted)
                {
                    return(false);
                }
            }

            if (doing)
            {
                // user must confirm revert
                var dialogResult = MessageBoxes.Show("All Changes will be lost. Do you want to proceed?".Localize(),
                                                     "Proceed with Revert?".Localize(),
                                                     MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (dialogResult == MessageBoxResult.Yes)
                {
                    foreach (IResource resource in SourceControlContext.Resources.ToArray())
                    {
                        SourceControlStatus status = GetStatus(resource);
                        if (status == SourceControlStatus.CheckedOut || status == SourceControlStatus.Added || status == SourceControlStatus.Deleted)
                        {
                            SourceControlService.Revert(resource.Uri);
                            Reload(resource);
                        }
                    }
                }
            }

            return(true);
        }