public static DialogResult Show(IWin32Window owner, string[] notCheckedOutFiles) { CheckOutErrorDialog coed = new CheckOutErrorDialog(notCheckedOutFiles); coed.StartPosition = FormStartPosition.CenterParent; return(coed.ShowDialog(owner)); }
/// <summary> /// Checks out version files for the array of <c>ProjectInfo</c> /// objects provided. /// </summary> /// <param name="projectsToCheckOut"> /// An array of <c>ProjectInfo</c> objects for which version files /// have to be checked out. /// </param> public override void CheckOut(ProjectInfo[] projectsToCheckOut) { Debug.Assert(projectsToCheckOut != null); Debug.Assert(m_projectInfosFailedToCheckOut != null && m_projectInfosFailedToCheckOut.Count == 0); if (projectsToCheckOut.Length == 0) { return; } object[] filesToCheckOut = GetFilesToCheckOut(projectsToCheckOut); if (filesToCheckOut.Length == 0) { return; } bool checkedOut = CheckOutFilesThroughDTE(filesToCheckOut); // in the case that SourceSafe is configured so that each checkout is prompted, // it may not be possible to checkout items through DTE if (!checkedOut) { CheckOutFilesManually(projectsToCheckOut); } // now check if all files have successfully been checked out ArrayList filesNotCheckedOut = new ArrayList(); foreach (ProjectInfo pi in projectsToCheckOut) { foreach (string filename in pi.VersionFilenames) { if (!m_environment.SourceControl.IsItemCheckedOut(filename)) { filesNotCheckedOut.Add(filename); if (!m_projectInfosFailedToCheckOut.Contains(pi)) { m_projectInfosFailedToCheckOut.Add(pi); } } else { m_filesCheckedOut.Add(filename); } } } if (filesNotCheckedOut.Count > 0) { //Try checking files out via if (!CheckOutFilesThroughShell(filesToCheckOut)) { if (CheckOutErrorDialog.Show(new WindowAdapter(m_environment.MainWindow.HWnd), (string[])filesNotCheckedOut.ToArray(typeof(string))) == DialogResult.No) { throw new UserCancelledException(); } } } }