Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
}