Skip to content
This repository was archived by the owner on Oct 17, 2023. It is now read-only.

Commit 05fe428

Browse files
BHSPitMonkeyjspaetzel
authored andcommitted
Add Signing Options (set) and Signature Error (get) (#62)
* Add support for Signing Options parameter (fixes #61) * Add forgotten file * Add error property to Signature model (for deserialization) (fixes #58) * Bump version to 0.5.9 * Add more missing fields to Signature object deserialization
1 parent c0fc90e commit 05fe428

File tree

7 files changed

+63
-3
lines changed

7 files changed

+63
-3
lines changed

HelloSign/HelloSign.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,13 @@ private SignatureRequest _PostSignatureRequest(SignatureRequest signatureRequest
510510
request.AddParameter(String.Format("metadata[{0}]", entry.Key), entry.Value); // TODO: Escape characters in key
511511
}
512512

513+
// Add Signing Options
514+
if (signatureRequest.SigningOptions != null)
515+
{
516+
// Serialize as JSON string
517+
request.AddParameter("signing_options", JsonConvert.SerializeObject(signatureRequest.SigningOptions));
518+
}
519+
513520
// Add form fields
514521
if (signatureRequest.FormFieldsPerDocument != null && signatureRequest.FormFieldsPerDocument.Any())
515522
{
@@ -616,6 +623,13 @@ public TemplateSignatureRequest _PostSignatureRequest(TemplateSignatureRequest s
616623
request.AddParameter(String.Format("metadata[{0}]", entry.Key), entry.Value); // TODO: Escape characters in key
617624
}
618625

626+
// Add Signing Options
627+
if (signatureRequest.SigningOptions != null)
628+
{
629+
// Serialize as JSON string
630+
request.AddParameter("signing_options", JsonConvert.SerializeObject(signatureRequest.SigningOptions));
631+
}
632+
619633
request.RootElement = "signature_request";
620634
return Execute<TemplateSignatureRequest>(request);
621635
}
@@ -1193,6 +1207,13 @@ private UnclaimedDraft _CreateUnclaimedDraft(SignatureRequest signatureRequest,
11931207
request.AddParameter(String.Format("metadata[{0}]", entry.Key), entry.Value); // TODO: Escape characters in key
11941208
}
11951209

1210+
// Add Signing Options
1211+
if (signatureRequest.SigningOptions != null)
1212+
{
1213+
// Serialize as JSON string
1214+
request.AddParameter("signing_options", JsonConvert.SerializeObject(signatureRequest.SigningOptions));
1215+
}
1216+
11961217
// TODO: Form fields per doc
11971218

11981219
request.RootElement = "unclaimed_draft";
@@ -1272,6 +1293,13 @@ public UnclaimedDraft CreateUnclaimedDraft(TemplateSignatureRequest signatureReq
12721293
request.AddParameter(String.Format("metadata[{0}]", entry.Key), entry.Value); // TODO: Escape characters in key
12731294
}
12741295

1296+
// Add Signing Options
1297+
if (signatureRequest.SigningOptions != null)
1298+
{
1299+
// Serialize as JSON string
1300+
request.AddParameter("signing_options", JsonConvert.SerializeObject(signatureRequest.SigningOptions));
1301+
}
1302+
12751303
request.RootElement = "unclaimed_draft";
12761304
return Execute<UnclaimedDraft>(request);
12771305
}

HelloSign/HelloSign.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
</Reference>
3838
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
3939
<HintPath>..\packages\RestSharp.105.2.3\lib\net35\RestSharp.dll</HintPath>
40-
<Private>True</Private>
4140
</Reference>
4241
<Reference Include="System" />
4342
<Reference Include="System.Core" />
@@ -74,6 +73,7 @@
7473
<Compile Include="Models\Account.cs" />
7574
<Compile Include="Models\Oauth.cs" />
7675
<Compile Include="Models\ApiApp.cs" />
76+
<Compile Include="Models\SigningOptions.cs" />
7777
<Compile Include="HelloSign.cs" />
7878
<Compile Include="Properties\AssemblyInfo.cs" />
7979
</ItemGroup>

HelloSign/Models/BaseSignatureRequest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class BaseSignatureRequest
2929
public bool SkipMeNow { get; set; }
3030
public List<Signature> Signatures { get; set; }
3131
public List<string> CcEmailAddresses { get; set; }
32+
public SigningOptions SigningOptions { get; set; }
3233

3334
public List<Signer> Signers = new List<Signer>();
3435

HelloSign/Models/Signature.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@ public class Signature
1212
public string SignatureId { get; set; }
1313
public string SignerEmailAddress { get; set; }
1414
public string SignerName { get; set; }
15+
public string SignerRole { get; set; }
1516
public int? Order { get; set; }
1617
public string StatusCode { get; set; }
1718
public DateTime SignedAt { get; set; }
1819
public DateTime LastViewedAt { get; set; }
1920
public DateTime LastRemindedAt { get; set; }
2021
public bool HasPin { get; set; }
2122
public string DeclineReason { get; set; }
23+
public string Error { get; set; }
24+
public string ReassignedBy { get; set; }
25+
public string ReassignmentReason { get; set; }
2226
}
2327
}

HelloSign/Models/SigningOptions.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Newtonsoft.Json;
2+
3+
namespace HelloSign
4+
{
5+
/// <summary>
6+
/// Signing Options for a Signature Request
7+
/// </summary>
8+
public class SigningOptions
9+
{
10+
[JsonProperty("draw")]
11+
public bool Draw { get; set; } = false;
12+
[JsonProperty("type")]
13+
public bool Type { get; set; } = false;
14+
[JsonProperty("upload")]
15+
public bool Upload { get; set; } = false;
16+
[JsonProperty("phone")]
17+
public bool Phone { get; set; } = false;
18+
[JsonProperty("default")]
19+
public string Default { get; set; } = "draw";
20+
}
21+
}

HelloSign/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@
3030
// Revision
3131
//
3232
// NOTE: This gets reported in the user-agent string for HTTP requests made.
33-
[assembly: AssemblyVersion("0.5.8.0")]
33+
[assembly: AssemblyVersion("0.5.9.0")]
3434
// [assembly: AssemblyVersion("0.0.0.0")]
3535
// [assembly: AssemblyFileVersion("0.0.0.0")]

HelloSignTestApp/Program.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ static void Main(string[] args)
176176
request.Metadata.Add("custom_id", "1234");
177177
request.Metadata.Add("custom_text", "NDA #9");
178178
request.AllowDecline = true;
179+
request.SigningOptions = new SigningOptions
180+
{
181+
Draw = true,
182+
Type = true,
183+
Default = "type"
184+
};
179185
request.TestMode = true;
180186
var response = client.SendSignatureRequest(request);
181187
Console.WriteLine("New Signature Request ID: " + response.SignatureRequestId);
@@ -284,7 +290,7 @@ static void Main(string[] args)
284290
var fpRequest = new SignatureRequest();
285291
fpRequest.AddSigner("jack@example.com", "Jack");
286292
fpRequest.AddSigner("jill@example.com", "Jill");
287-
fpRequest.AddFile("HelloSignTestApp/Resources/Test Document.pdf").WithFields(
293+
fpRequest.AddFile(System.AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Resources\\Test Document.pdf").WithFields(
288294
new FormField("chk1", FormField.TypeCheckbox, 1, 140, 72*1, 36, 36, true, 0),
289295
new FormField("txt1", FormField.TypeText, 1, 140, 72*2, 225, 20, true, 0, FormField.ValidationTypeEmailAddress),
290296
new FormField("dat1", FormField.TypeDateSigned, 1, 140, 72*3, 225, 52, true, 0),

0 commit comments

Comments
 (0)