private void GetProjectReqType(ReqPro40.Project___v7 rpxPrj, out string strPrjPrefix, out string[] astrReqType, out int[] anReqTypeKey) { int nCount; ReqPro40.ReqType rpxReqType; ReqPro40.ReqTypes rpxReqTypes = rpxPrj.ReqTypes; strPrjPrefix = rpxPrj.Prefix; nCount = rpxReqTypes.Count; astrReqType = new string [nCount]; anReqTypeKey = new int [nCount]; for (int i = 0; i < nCount; i++) { rpxReqType = rpxReqTypes[i + 1, ReqPro40.enumReqTypesLookups.eReqTypesLookups_Index]; astrReqType[i] = rpxReqType.ReqPrefix + ": " + rpxReqType.Name; anReqTypeKey[i] = rpxReqType.key; } }
public bool OpenProject(string strProject, string strUser, string strPassword, out string strErrDiag) { strErrDiag = ""; bool bRet = false; try { if (state != eState.stDisc) { CloseProject(); } cb.ShowProgressOpenProject("Opening " + strProject); rpxProject = (ReqPro40.Project___v7)rpxApplication.OpenProject(strProject, ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile, strUser, strPassword, ReqPro40.enumProjectFlags.eProjFlag_Normal, ReqPro40.enumRelatedProjectOptions.eRelatedProjOption_ConnectAll); state = eState.stConn; bRet = true; ReqProRequirementPrx.HomePrjPrefix = rpxProject.Prefix; int nCountRelPrj = rpxProject.RelatedProjectContexts.Count; bool bLoadRelPrj; string strRelPrjPassword; string strRelPrjUser; cb.ShowProgressOpenProject("Related Projects to be opened: " + nCountRelPrj); ReqPro40.RelatedProjectContext rpxRelPrjCtx; ReqPro40.Project___v7 rpxRelPrj; for (int i = 0; i < nCountRelPrj; i++) { rpxRelPrjCtx = rpxProject.RelatedProjectContexts[i + 1, ReqPro40.enumRelatedProjectLookups.eRelProjLookup_Index]; bLoadRelPrj = true; strRelPrjPassword = strPassword; strRelPrjUser = strUser; rpxRelPrj = null; if (!rpxRelPrjCtx.IsOpen) { while (bLoadRelPrj) { try { cb.ShowProgressOpenProject("Opening: " + rpxRelPrjCtx.get_Name()); rpxRelPrj = (ReqPro40.Project___v7)rpxRelPrjCtx.OpenProject(strRelPrjUser, strRelPrjPassword); cb.ShowProgressOpenProject("Opened: " + rpxRelPrj.Name); } catch (System.Runtime.InteropServices.COMException e) { bool bPasswordError; unchecked { bPasswordError = (e.ErrorCode == (int)0x8004088b); } if (bPasswordError) { bLoadRelPrj = cb.RequestCredentials(rpxRelPrjCtx.get_Name(), ref strRelPrjUser, out strRelPrjPassword); } else { bLoadRelPrj = false; } } } } else { rpxRelPrj = (ReqPro40.Project___v7)rpxRelPrjCtx.ThisProject; cb.ShowProgressOpenProject("Already opened: " + rpxRelPrj.Name); } if (rpxRelPrj != null) { arpxRelProjects.Add(rpxRelPrj); } } } catch (System.Runtime.InteropServices.COMException e) { strErrDiag = e.Message; } return(bRet); }