-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathCreateEmbeddedSigningInviteToSignTheDocument.cs
More file actions
76 lines (65 loc) · 3.04 KB
/
CreateEmbeddedSigningInviteToSignTheDocument.cs
File metadata and controls
76 lines (65 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SignNow.Net.Model;
using SignNow.Net.Model.Requests;
namespace SignNow.Net.Examples
{
[TestClass]
public partial class InviteExamples : ExamplesBase
{
[TestMethod]
public async Task CreateEmbeddedSigningInviteToSignTheDocumentAsync()
{
// Upload document with signature field
await using var fileStream = File.OpenRead(PdfWithSignatureField);
var document = await testContext.Documents
.UploadDocumentWithFieldExtractAsync(fileStream, "CreateEmbeddedSigningInviteToSignTheDocument.pdf")
.ConfigureAwait(false);
// Get document with signature field
var signNowDoc = await testContext.Documents.GetDocumentAsync(document.Id).ConfigureAwait(false);
// Create Embedded Signing Invite
var invite = new EmbeddedSigningInvite(signNowDoc);
invite.AddEmbeddedSigningInvite(
new EmbeddedInvite
{
Email = "testemail@signnow.com",
RoleId = signNowDoc.Roles[0].Id,
SigningOrder = 1
});
var embeddedInviteResponse = await testContext.Invites
.CreateInviteAsync(signNowDoc.Id, invite)
.ConfigureAwait(false);
// Check if invite was created
Assert.AreEqual(1, embeddedInviteResponse.InviteData.Count);
Assert.AreEqual(1, embeddedInviteResponse.InviteData[0].Order);
Assert.AreEqual("testemail@signnow.com", embeddedInviteResponse.InviteData[0].Email);
Assert.AreEqual("Pending", embeddedInviteResponse.InviteData[0].Status.ToString());
// get document with embedded invite
var documentWithEmbed = await testContext.Documents
.GetDocumentAsync(document.Id)
.ConfigureAwait(false);
// Check if invite is embedded
Assert.IsTrue(documentWithEmbed.FieldInvites.First().IsEmbedded);
// Generate link for Embedded Signing Invite
var options = new CreateEmbedLinkOptions
{
FieldInvite = documentWithEmbed.FieldInvites.First(),
LinkExpiration = 30
};
var embeddedLink = await testContext.Invites
.GenerateEmbeddedInviteLinkAsync(documentWithEmbed.Id, options)
.ConfigureAwait(false);
// Check if link is generated
Assert.IsInstanceOfType(embeddedLink.Link, typeof(Uri));
Console.WriteLine($@"Embedded link: {embeddedLink.Link.AbsoluteUri}");
// Cancel embedded invite to delete test document with embedded invite
await testContext.Invites.CancelEmbeddedInviteAsync(documentWithEmbed.Id).ConfigureAwait(false);
// clean up
DeleteTestDocument(document.Id);
DeleteTestDocument(documentWithEmbed.Id);
}
}
}