| 2139 |
ghuddy |
1 |
//-----------------------------------------------------------------------
|
|
|
2 |
// This is open source licensed under GPL
|
|
|
3 |
//
|
|
|
4 |
//
|
|
|
5 |
using System;
|
|
|
6 |
using System.Collections;
|
|
|
7 |
using System.Text;
|
|
|
8 |
using ReqPro40;
|
|
|
9 |
using System.Windows.Forms;
|
|
|
10 |
|
|
|
11 |
namespace EA_ReqPro
|
|
|
12 |
{
|
|
|
13 |
class RQConnection
|
|
|
14 |
{
|
|
|
15 |
// EA properties
|
|
|
16 |
public string EAGuid;
|
|
|
17 |
public int EAId;
|
|
|
18 |
|
|
|
19 |
public ReqPro40.Project project;
|
|
|
20 |
|
|
|
21 |
// ReqPro properties
|
|
|
22 |
public string RQProjectName;
|
|
|
23 |
public string RQProjectDescription;
|
|
|
24 |
public string RQProjectGuid;
|
|
|
25 |
public string RQFile;
|
|
|
26 |
public string RQUsername;
|
|
|
27 |
public string RQPassword;
|
|
|
28 |
|
|
|
29 |
public RQConnection(EA.Repository repository, EA.Element element )
|
|
|
30 |
{
|
|
|
31 |
EAOpen(repository, element);
|
|
|
32 |
}
|
|
|
33 |
|
|
|
34 |
public RQConnection(string file, string username, string password)
|
|
|
35 |
{
|
|
|
36 |
RQOpen(file, username, password);
|
|
|
37 |
}
|
|
|
38 |
|
|
|
39 |
public void EAOpen(EA.Repository repository, EA.Element element)
|
|
|
40 |
{
|
|
|
41 |
EA_Utilities EA_Utils = new EA_Utilities(repository);
|
|
|
42 |
|
|
|
43 |
EAGuid = element.ElementGUID;
|
|
|
44 |
EAId = element.ElementID;
|
|
|
45 |
|
|
|
46 |
RQProjectName = element.Name;
|
|
|
47 |
RQProjectDescription = element.Notes;
|
|
|
48 |
RQFile = EA_Utils.ReadTag(element, "Location");
|
|
|
49 |
RQUsername = EA_Utils.ReadTag(element, "Username");
|
|
|
50 |
RQProjectGuid = EA_Utils.ReadTag(element, "GUID");
|
|
|
51 |
}
|
|
|
52 |
|
|
|
53 |
public ReqPro40.Project OpenRqDB(string file, string username, string password)
|
|
|
54 |
{
|
|
|
55 |
ReqPro40.Application reqPro = new ReqPro40.ApplicationClass();
|
|
|
56 |
|
|
|
57 |
RQFile = file;
|
|
|
58 |
RQUsername = username;
|
|
|
59 |
RQPassword = password;
|
|
|
60 |
|
|
|
61 |
project = reqPro.OpenProject(
|
|
|
62 |
RQFile,
|
|
|
63 |
ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile,
|
|
|
64 |
RQUsername,
|
|
|
65 |
RQPassword,
|
|
|
66 |
enumProjectFlags.eProjFlag_Normal,
|
|
|
67 |
enumRelatedProjectOptions.eRelatedProjOption_ConnectAsSpecified);
|
|
|
68 |
|
|
|
69 |
return project;
|
|
|
70 |
}
|
|
|
71 |
|
|
|
72 |
public ReqPro40.Project OpenRqDB()
|
|
|
73 |
{
|
|
|
74 |
ReqPro40.Application reqPro = new ReqPro40.ApplicationClass();
|
|
|
75 |
|
|
|
76 |
Logon logon = new Logon(RQUsername);
|
|
|
77 |
|
|
|
78 |
DialogResult dlgRes = logon.ShowDialog();
|
|
|
79 |
if (dlgRes == DialogResult.OK)
|
|
|
80 |
{
|
|
|
81 |
RQPassword = logon.ebPassword.Text;
|
|
|
82 |
|
|
|
83 |
project = reqPro.OpenProject(
|
|
|
84 |
RQFile,
|
|
|
85 |
ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile,
|
|
|
86 |
RQUsername,
|
|
|
87 |
RQPassword,
|
|
|
88 |
enumProjectFlags.eProjFlag_Normal,
|
|
|
89 |
enumRelatedProjectOptions.eRelatedProjOption_ConnectAsSpecified);
|
|
|
90 |
|
|
|
91 |
return project;
|
|
|
92 |
}
|
|
|
93 |
else
|
|
|
94 |
{
|
|
|
95 |
return null;
|
|
|
96 |
}
|
|
|
97 |
}
|
|
|
98 |
|
|
|
99 |
public void RQOpen( string file, string username, string password )
|
|
|
100 |
{
|
|
|
101 |
try
|
|
|
102 |
{
|
|
|
103 |
RQFile = file;
|
|
|
104 |
RQUsername = username;
|
|
|
105 |
RQPassword = password;
|
|
|
106 |
|
|
|
107 |
project = OpenRqDB(file, username, password);
|
|
|
108 |
|
|
|
109 |
RQProjectName = project.Name;
|
|
|
110 |
RQProjectDescription = project.Description;
|
|
|
111 |
RQProjectGuid = project.GUID;
|
|
|
112 |
}
|
|
|
113 |
catch
|
|
|
114 |
{
|
|
|
115 |
throw (new Exception("Error opening the requisite pro database"));
|
|
|
116 |
}
|
|
|
117 |
}
|
|
|
118 |
|
|
|
119 |
public ReqPro40.Project ReOpenRqDB()
|
|
|
120 |
{
|
|
|
121 |
try
|
|
|
122 |
{
|
|
|
123 |
project = OpenRqDB(RQFile, RQUsername, RQPassword);
|
|
|
124 |
|
|
|
125 |
RQProjectName = project.Name;
|
|
|
126 |
RQProjectDescription = project.Description;
|
|
|
127 |
RQProjectGuid = project.GUID;
|
|
|
128 |
}
|
|
|
129 |
catch
|
|
|
130 |
{
|
|
|
131 |
throw (new Exception("Error re-opening the requisite pro database"));
|
|
|
132 |
}
|
|
|
133 |
return project;
|
|
|
134 |
}
|
|
|
135 |
|
|
|
136 |
public bool SaveAsEAElement(EA.Repository repository, EA.Package package)
|
|
|
137 |
{
|
|
|
138 |
EA_Utilities EA_Utils = new EA_Utilities(repository);
|
|
|
139 |
|
|
|
140 |
package.Notes = RQProjectDescription;
|
|
|
141 |
package.Update();
|
|
|
142 |
|
|
|
143 |
EA.Element element;
|
|
|
144 |
element = (EA.Element)package.Elements.AddNew(RQProjectName + " - " + RQUsername, "Artifact");
|
|
|
145 |
element.Stereotype = "ReqProDB";
|
|
|
146 |
element.Notes = RQProjectDescription;
|
|
|
147 |
|
|
|
148 |
EA_Utils.WriteTag( element, "Location", RQFile);
|
|
|
149 |
EA_Utils.WriteTag( element, "Username", RQUsername);
|
|
|
150 |
EA_Utils.WriteTag( element, "GUID", RQProjectGuid);
|
|
|
151 |
EA_Utils.WriteTag( element, "Enable_Update", "false");
|
|
|
152 |
|
|
|
153 |
element.Update();
|
|
|
154 |
element.Refresh();
|
|
|
155 |
EAGuid = element.ElementGUID;
|
|
|
156 |
EAId = element.ElementID;
|
|
|
157 |
element.TaggedValues.Refresh();
|
|
|
158 |
package.Packages.Refresh();
|
|
|
159 |
package.Elements.Refresh();
|
|
|
160 |
|
|
|
161 |
return true;
|
|
|
162 |
}
|
|
|
163 |
|
|
|
164 |
|
|
|
165 |
|
|
|
166 |
|
|
|
167 |
|
|
|
168 |
|
|
|
169 |
|
|
|
170 |
|
|
|
171 |
|
|
|
172 |
|
|
|
173 |
|
|
|
174 |
|
|
|
175 |
}
|
|
|
176 |
}
|