Blame | Last modification | View Log | RSS feed
//-----------------------------------------------------------------------// This is open source licensed under GPL////using System;using System.Collections;using System.Text;using ReqPro40;using System.Windows.Forms;namespace EA_ReqPro{class RQConnection{// EA propertiespublic string EAGuid;public int EAId;public ReqPro40.Project project;// ReqPro propertiespublic string RQProjectName;public string RQProjectDescription;public string RQProjectGuid;public string RQFile;public string RQUsername;public string RQPassword;public RQConnection(EA.Repository repository, EA.Element element ){EAOpen(repository, element);}public RQConnection(string file, string username, string password){RQOpen(file, username, password);}public void EAOpen(EA.Repository repository, EA.Element element){EA_Utilities EA_Utils = new EA_Utilities(repository);EAGuid = element.ElementGUID;EAId = element.ElementID;RQProjectName = element.Name;RQProjectDescription = element.Notes;RQFile = EA_Utils.ReadTag(element, "Location");RQUsername = EA_Utils.ReadTag(element, "Username");RQProjectGuid = EA_Utils.ReadTag(element, "GUID");}public ReqPro40.Project OpenRqDB(string file, string username, string password){ReqPro40.Application reqPro = new ReqPro40.ApplicationClass();RQFile = file;RQUsername = username;RQPassword = password;project = reqPro.OpenProject(RQFile,ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile,RQUsername,RQPassword,enumProjectFlags.eProjFlag_Normal,enumRelatedProjectOptions.eRelatedProjOption_ConnectAsSpecified);return project;}public ReqPro40.Project OpenRqDB(){ReqPro40.Application reqPro = new ReqPro40.ApplicationClass();Logon logon = new Logon(RQUsername);DialogResult dlgRes = logon.ShowDialog();if (dlgRes == DialogResult.OK){RQPassword = logon.ebPassword.Text;project = reqPro.OpenProject(RQFile,ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile,RQUsername,RQPassword,enumProjectFlags.eProjFlag_Normal,enumRelatedProjectOptions.eRelatedProjOption_ConnectAsSpecified);return project;}else{return null;}}public void RQOpen( string file, string username, string password ){try{RQFile = file;RQUsername = username;RQPassword = password;project = OpenRqDB(file, username, password);RQProjectName = project.Name;RQProjectDescription = project.Description;RQProjectGuid = project.GUID;}catch{throw (new Exception("Error opening the requisite pro database"));}}public ReqPro40.Project ReOpenRqDB(){try{project = OpenRqDB(RQFile, RQUsername, RQPassword);RQProjectName = project.Name;RQProjectDescription = project.Description;RQProjectGuid = project.GUID;}catch{throw (new Exception("Error re-opening the requisite pro database"));}return project;}public bool SaveAsEAElement(EA.Repository repository, EA.Package package){EA_Utilities EA_Utils = new EA_Utilities(repository);package.Notes = RQProjectDescription;package.Update();EA.Element element;element = (EA.Element)package.Elements.AddNew(RQProjectName + " - " + RQUsername, "Artifact");element.Stereotype = "ReqProDB";element.Notes = RQProjectDescription;EA_Utils.WriteTag( element, "Location", RQFile);EA_Utils.WriteTag( element, "Username", RQUsername);EA_Utils.WriteTag( element, "GUID", RQProjectGuid);EA_Utils.WriteTag( element, "Enable_Update", "false");element.Update();element.Refresh();EAGuid = element.ElementGUID;EAId = element.ElementID;element.TaggedValues.Refresh();package.Packages.Refresh();package.Elements.Refresh();return true;}}}