Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }