@@ -7,87 +7,43 @@ namespace DocuSign.CodeExamples.Examples
7
7
using System ;
8
8
using System . Collections . Generic ;
9
9
using System . Linq ;
10
- using System . Net . Http ;
11
10
using System . Threading . Tasks ;
12
11
using DocuSign . eSign . Api ;
13
12
using DocuSign . eSign . Client ;
14
13
using DocuSign . eSign . Model ;
15
- using Newtonsoft . Json ;
16
- using Newtonsoft . Json . Linq ;
14
+ using Docusign . IAM . SDK ;
15
+ using TabInfo = Docusign . IAM . SDK . Models . Components . TabInfo ;
17
16
18
17
public static class SetConnectedFields
19
18
{
20
- private static readonly HttpClient Client = new HttpClient ( ) ;
21
-
22
- public static async Task < object > GetConnectedFieldsTabGroupsAsync ( string accountId , string accessToken )
19
+ public static async Task < List < TabInfo > > GetConnectedFieldsTabGroupsAsync ( string basePath , string accountId , string accessToken )
23
20
{
24
21
//ds-snippet-start:ConnectedFields1Step3
25
- var url = $ "https://api-d.docusign.com/v1/accounts/{ accountId } /connected-fields/tab-groups";
26
-
27
- var requestMessage = new HttpRequestMessage ( HttpMethod . Get , url ) ;
22
+ var client = CreateAuthenticatedClient ( basePath , accessToken ) ;
23
+ return await client . ConnectedFields . TabInfo . GetConnectedFieldsTabGroupsAsync ( accountId ) ;
28
24
//ds-snippet-end:ConnectedFields1Step3
29
-
30
- //ds-snippet-start:ConnectedFields1Step2
31
- requestMessage . Headers . Add ( "Authorization" , $ "Bearer { accessToken } ") ;
32
- requestMessage . Headers . Add ( "Accept" , "application/json" ) ;
33
- //ds-snippet-end:ConnectedFields1Step2
34
-
35
- try
36
- {
37
- //ds-snippet-start:ConnectedFields1Step3
38
- var response = await Client . SendAsync ( requestMessage ) ;
39
- response . EnsureSuccessStatusCode ( ) ;
40
-
41
- var body = await response . Content . ReadAsStringAsync ( ) ;
42
- var data = JsonConvert . DeserializeObject < object > ( body ) ;
43
-
44
- return data ;
45
- //ds-snippet-end:ConnectedFields1Step3
46
- }
47
- catch ( HttpRequestException e )
48
- {
49
- throw new Exception ( $ "DocuSign API Request failed: { e . Message } ") ;
50
- }
51
25
}
52
26
53
- public static JArray FilterData ( JArray data )
27
+ //ds-snippet-start:ConnectedFields1Step4
28
+ public static List < TabInfo > FilterData ( List < TabInfo > connectedFields )
54
29
{
55
- //ds-snippet-start:ConnectedFields1Step4
56
- var filteredData = data . Where ( item =>
57
- {
58
- var tabs = item [ "tabs" ] as JArray ;
59
- if ( tabs == null )
60
- {
61
- return false ;
62
- }
63
-
64
- foreach ( var tab in tabs )
65
- {
66
- var extensionData = tab [ "extensionData" ] ;
67
- var tabLabel = tab [ "tabLabel" ] ? . ToString ( ) ;
68
-
69
- if ( ( extensionData != null && extensionData [ "actionContract" ] ? . ToString ( ) . Contains ( "Verify" ) == true ) ||
70
- ( tabLabel != null && tabLabel . Contains ( "connecteddata" ) ) )
71
- {
72
- return true ;
73
- }
74
- }
75
-
76
- return false ;
77
- } ) . ToList ( ) ;
78
- //ds-snippet-end:ConnectedFields1Step4
79
-
80
- return new JArray ( filteredData ) ;
30
+ return connectedFields
31
+ . Where ( group => group . Tabs . Any ( tab =>
32
+ tab . ExtensionData ? . ActionContract ? . Contains ( "Verify" ) == true ||
33
+ tab . TabLabel . Contains ( "connecteddata" ) ) )
34
+ . ToList ( ) ;
81
35
}
82
36
37
+ //ds-snippet-end:ConnectedFields1Step4
38
+
83
39
public static string SendEnvelopeViaEmail (
84
40
string basePath ,
85
41
string accessToken ,
86
42
string accountId ,
87
43
string signerEmail ,
88
44
string signerName ,
89
45
string docPdf ,
90
- JObject selectedApp )
46
+ TabInfo selectedApp )
91
47
{
92
48
//ds-snippet-start:ConnectedFields1Step6
93
49
EnvelopeDefinition envelopeDefinition = MakeEnvelope ( signerEmail , signerName , docPdf , selectedApp ) ;
@@ -105,11 +61,8 @@ public static EnvelopeDefinition MakeEnvelope(
105
61
string signerEmail ,
106
62
string signerName ,
107
63
string docPdf ,
108
- JObject selectedApp )
64
+ TabInfo selectedApp )
109
65
{
110
- var appId = selectedApp [ "appId" ] ? . ToString ( ) ?? string . Empty ;
111
- JArray tabLabels = ( JArray ) selectedApp [ "tabs" ] ;
112
-
113
66
EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition ( ) ;
114
67
envelopeDefinition . EmailSubject = "Please sign this document set" ;
115
68
envelopeDefinition . Status = "sent" ;
@@ -147,32 +100,24 @@ public static EnvelopeDefinition MakeEnvelope(
147
100
} ,
148
101
} ;
149
102
150
- foreach ( var tab in tabLabels )
103
+ foreach ( var tab in selectedApp . Tabs )
151
104
{
152
- var connectionKey = tab [ "extensionData" ] [ "connectionInstances" ] != null ?
153
- tab [ "extensionData" ] [ "connectionInstances" ] [ 0 ] ? [ "connectionKey" ] ? . ToString ( ) : string . Empty ;
154
- var connectionValue = tab [ "extensionData" ] [ "connectionInstances" ] != null ?
155
- tab [ "extensionData" ] [ "connectionInstances" ] [ 0 ] ? [ "connectionValue" ] ? . ToString ( ) : string . Empty ;
156
- var extensionGroupId = tab [ "extensionData" ] [ "extensionGroupId" ] ? . ToString ( ) ?? string . Empty ;
157
- var publisherName = tab [ "extensionData" ] [ "publisherName" ] ? . ToString ( ) ?? string . Empty ;
158
- var applicationName = tab [ "extensionData" ] [ "applicationName" ] ? . ToString ( ) ?? string . Empty ;
159
- var actionName = tab [ "extensionData" ] [ "actionName" ] ? . ToString ( ) ?? string . Empty ;
160
- var actionInputKey = tab [ "extensionData" ] [ "actionInputKey" ] ? . ToString ( ) ?? string . Empty ;
161
- var actionContract = tab [ "extensionData" ] [ "actionContract" ] ? . ToString ( ) ?? string . Empty ;
162
- var extensionName = tab [ "extensionData" ] [ "extensionName" ] ? . ToString ( ) ?? string . Empty ;
163
- var extensionContract = tab [ "extensionData" ] [ "extensionContract" ] ? . ToString ( ) ?? string . Empty ;
164
- var requiredForExtension = tab [ "extensionData" ] [ "requiredForExtension" ] ? . ToString ( ) ?? string . Empty ;
105
+ var extensionData = tab . ExtensionData ;
106
+ var connectionKey = extensionData . ConnectionInstances != null ?
107
+ extensionData . ConnectionInstances [ 0 ] ? . ConnectionKey : string . Empty ;
108
+ var connectionValue = extensionData . ConnectionInstances != null ?
109
+ extensionData . ConnectionInstances [ 0 ] ? . ConnectionValue : string . Empty ;
165
110
166
111
var text = new Text
167
112
{
168
113
RequireInitialOnSharedChange = "false" ,
169
114
RequireAll = "false" ,
170
- Name = applicationName ,
115
+ Name = extensionData . ApplicationName ,
171
116
Required = "false" ,
172
117
Locked = "false" ,
173
118
DisableAutoSize = "false" ,
174
119
MaxLength = "4000" ,
175
- TabLabel = tab [ "tabLabel" ] . ToString ( ) ,
120
+ TabLabel = tab . TabLabel ,
176
121
Font = "lucidaconsole" ,
177
122
FontColor = "black" ,
178
123
FontSize = "size9" ,
@@ -187,16 +132,16 @@ public static EnvelopeDefinition MakeEnvelope(
187
132
TabType = "text" ,
188
133
ExtensionData = new ExtensionData
189
134
{
190
- ExtensionGroupId = extensionGroupId ,
191
- PublisherName = publisherName ,
192
- ApplicationId = appId ,
193
- ApplicationName = applicationName ,
194
- ActionName = actionName ,
195
- ActionContract = actionContract ,
196
- ExtensionName = extensionName ,
197
- ExtensionContract = extensionContract ,
198
- RequiredForExtension = requiredForExtension ,
199
- ActionInputKey = actionInputKey ,
135
+ ExtensionGroupId = extensionData . ExtensionGroupId ,
136
+ PublisherName = extensionData . PublisherName ,
137
+ ApplicationId = selectedApp . AppId ,
138
+ ApplicationName = extensionData . ApplicationName ,
139
+ ActionName = extensionData . ActionName ,
140
+ ActionContract = extensionData . ActionContract ,
141
+ ExtensionName = extensionData . ExtensionName ,
142
+ ExtensionContract = extensionData . ExtensionContract ,
143
+ RequiredForExtension = extensionData . RequiredForExtension . ToString ( ) ,
144
+ ActionInputKey = extensionData . ActionInputKey ,
200
145
ExtensionPolicy = "MustVerifyToSign" ,
201
146
ConnectionInstances = new List < ConnectionInstance >
202
147
{
@@ -222,5 +167,10 @@ public static EnvelopeDefinition MakeEnvelope(
222
167
}
223
168
224
169
//ds-snippet-end:ConnectedFields1Step5
170
+
171
+ //ds-snippet-start:ConnectedFields1Step2
172
+ private static IamClient CreateAuthenticatedClient ( string basePath , string accessToken ) =>
173
+ IamClient . Builder ( ) . WithServerUrl ( basePath ) . WithAccessToken ( accessToken ) . Build ( ) ;
174
+ //ds-snippet-end:ConnectedFields1Step2
225
175
}
226
176
}
0 commit comments