// Step 4 end // Step 2 start private static EnvelopeDefinition PrepareEnvelope(string hostEmail, string hostName, string signerName, string docPdf) { byte[] fileContentInBytes = System.IO.File.ReadAllBytes(docPdf); EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition { EmailSubject = "Please host this in-person signing session", Documents = new List <Document> { new Document { DocumentBase64 = Convert.ToBase64String(fileContentInBytes), Name = "Lorem Ipsum", FileExtension = "pdf", DocumentId = "1" } } }; InPersonSigner inPersonSigner = new InPersonSigner { HostEmail = hostEmail, HostName = hostName, SignerName = signerName, RecipientId = "1", RoutingOrder = "1", Tabs = new Tabs { SignHereTabs = new List <SignHere> { new SignHere { AnchorString = "/sn1/", AnchorUnits = "pixels", AnchorXOffset = "20", AnchorYOffset = "10" } } } }; envelopeDefinition.Recipients = new Recipients { InPersonSigners = new List <InPersonSigner> { inPersonSigner } }; envelopeDefinition.Status = "sent"; return(envelopeDefinition); }
public string SendforESign(SendDocumentInfo docDetails, List <FileDetail> fileDetails, string CUName, string CUEmail) { try { if (!_canExecuteRequest) { throw new Exception("Failed to retrieve Credentials from Credential store"); } if (Utility.IsEventLogged) { Utility.LogAction("Request Send document"); } string authHeader = "{\"Username\":\"" + _email + "\", \"Password\":\"" + _password + "\", \"IntegratorKey\":\"" + _integratorKey + "\"}"; DocuSign.eSign.Client.Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader); string accountId = (!string.IsNullOrEmpty(Utility.DocuSignAccountID)) ? Utility.DocuSignAccountID : GetAccountID(); EnvelopeDefinition envDef = new EnvelopeDefinition(); envDef.EmailSubject = ConfigurationManager.AppSettings["DocuSignEmailSubject"]; envDef.EmailBlurb = ConfigurationManager.AppSettings["DocuSignEmailBody"]; if (Utility.IsEventLogged) { Utility.LogAction("Creating document object"); } envDef.Documents = new List <Document>(); for (int i = 0; i < fileDetails.Count(); i++) { Document doc = new Document(); doc.DocumentBase64 = fileDetails.ElementAt(i).base64WordDoc; doc.Name = fileDetails.ElementAt(i).name; doc.DocumentId = fileDetails.ElementAt(i).id; doc.FileExtension = "docx"; envDef.Documents.Add(doc); } envDef.Recipients = new Recipients(); envDef.Recipients.Signers = new List <Signer>(); envDef.Recipients.InPersonSigners = new List <InPersonSigner>(); if (Utility.IsEventLogged) { Utility.LogAction("Creating recipient and sign tabs"); } foreach (var reci in docDetails.SignerDetails) { if (docDetails.SignerDetails.ElementAt(0).IsInPerson.ToLower() == "true") { InPersonSigner signer = new InPersonSigner(); signer.Tabs = new Tabs(); signer.Tabs.SignHereTabs = new List <SignHere>(); signer.Tabs.DateSignedTabs = new List <DateSigned>(); signer.Tabs.TextTabs = new List <Text>(); signer.Tabs.DateTabs = new List <Date>(); signer.Tabs.CheckboxTabs = new List <Checkbox>(); //signer.Name = reci.ReciName; //signer.Email = reci.ReciEmail; //signer.RecipientId = reci.ReciId; //signer.RoutingOrder = reci.ReciId; signer.RecipientId = reci.ReciId; signer.RoutingOrder = reci.ReciId; signer.InPersonSigningType = "inPersonSigner"; signer.SignerName = reci.ReciName; signer.HostName = CUName; signer.HostEmail = CUEmail; //signer.AutoNavigation = "true"; //signer.DefaultRecipient = "true"; SignHere signHere = new SignHere(); signHere.DocumentId = "1"; signHere.RecipientId = reci.ReciId; signHere.AnchorString = "member$ign"; signHere.AnchorXOffset = "0"; signHere.AnchorYOffset = "0"; signHere.AnchorUnits = "inches"; signHere.AnchorIgnoreIfNotPresent = "false"; signer.Tabs.SignHereTabs.Add(signHere); DateSigned signed = new DateSigned(); signed.DocumentId = "1"; signed.RecipientId = reci.ReciId; signed.AnchorString = "member$date"; signed.AnchorXOffset = "0"; signed.AnchorYOffset = "0"; signed.AnchorUnits = "inches"; signed.AnchorIgnoreIfNotPresent = "true"; signer.Tabs.DateSignedTabs.Add(signed); for (int j = 1; j <= 16; j++) { Text textTab = new Text(); textTab.DocumentId = "1"; textTab.RecipientId = "1"; textTab.AnchorString = "member1$1nput" + j; textTab.TabLabel = "OptionalBeneficiaryInfo" + j; textTab.AnchorXOffset = "0"; textTab.AnchorYOffset = "-3"; textTab.AnchorUnits = "pixels"; textTab.AnchorIgnoreIfNotPresent = "true"; textTab.AnchorMatchWholeWord = "true"; textTab.Required = "false"; textTab.Width = "75"; textTab.Height = "15"; textTab.FontSize = "Size10"; textTab.Font = "TimesNewRoman"; signer.Tabs.TextTabs.Add(textTab); } for (int k = 1; k <= 8; k++) { Date dateTab = new Date(); dateTab.DocumentId = "1"; dateTab.RecipientId = "1"; dateTab.AnchorString = "OBI$D01B$" + k; dateTab.TabLabel = "OBIDate" + k; dateTab.AnchorXOffset = "0"; dateTab.AnchorYOffset = "-3"; dateTab.AnchorUnits = "pixels"; dateTab.AnchorIgnoreIfNotPresent = "true"; dateTab.AnchorMatchWholeWord = "true"; dateTab.Required = "false"; dateTab.Width = "50"; dateTab.Height = "15"; dateTab.FontSize = "Size9"; dateTab.Font = "Arial"; signer.Tabs.DateTabs.Add(dateTab); } for (int c = 1; c <= 5; c++) { Checkbox checkBox = new Checkbox(); checkBox.DocumentId = "1"; checkBox.RecipientId = "1"; checkBox.AnchorString = "cu0$chk" + c; checkBox.TabLabel = "MSRCheckBox" + c; checkBox.AnchorXOffset = "0"; checkBox.AnchorYOffset = "0"; checkBox.AnchorUnits = "inches"; checkBox.AnchorIgnoreIfNotPresent = "true"; signer.Tabs.CheckboxTabs.Add(checkBox); } envDef.Recipients.InPersonSigners.Add(signer); } else { Signer signer = new Signer(); signer.Tabs = new Tabs(); signer.Tabs.SignHereTabs = new List <SignHere>(); signer.Tabs.DateSignedTabs = new List <DateSigned>(); signer.Tabs.TextTabs = new List <Text>(); signer.Tabs.DateTabs = new List <Date>(); signer.Tabs.CheckboxTabs = new List <Checkbox>(); signer.Name = reci.ReciName; signer.Email = reci.ReciEmail; signer.RecipientId = reci.ReciId; signer.RoutingOrder = reci.ReciId; SignHere signHere = new SignHere(); signHere.DocumentId = "1"; signHere.RecipientId = reci.ReciId; signHere.AnchorString = "member$ign"; signHere.AnchorXOffset = "0"; signHere.AnchorYOffset = "0"; signHere.AnchorUnits = "inches"; signHere.AnchorIgnoreIfNotPresent = "false"; signer.Tabs.SignHereTabs.Add(signHere); DateSigned signed = new DateSigned(); signed.DocumentId = "1"; signed.RecipientId = reci.ReciId; signed.AnchorString = "member$date"; signed.AnchorXOffset = "0"; signed.AnchorYOffset = "0"; signed.AnchorUnits = "inches"; signed.AnchorIgnoreIfNotPresent = "true"; signer.Tabs.DateSignedTabs.Add(signed); for (int j = 1; j <= 16; j++) { Text textTab = new Text(); textTab.DocumentId = "1"; textTab.RecipientId = "1"; textTab.AnchorString = "member1$1nput" + j; textTab.TabLabel = "OptionalBeneficiaryInfo" + j; textTab.AnchorXOffset = "0"; textTab.AnchorYOffset = "-3"; textTab.AnchorUnits = "pixels"; textTab.AnchorIgnoreIfNotPresent = "true"; textTab.AnchorMatchWholeWord = "true"; textTab.Required = "false"; textTab.Width = "75"; textTab.Height = "15"; textTab.FontSize = "Size10"; textTab.Font = "TimesNewRoman"; signer.Tabs.TextTabs.Add(textTab); } for (int k = 1; k <= 8; k++) { Date dateTab = new Date(); dateTab.DocumentId = "1"; dateTab.RecipientId = "1"; dateTab.AnchorString = "OBI$D01B$" + k; dateTab.TabLabel = "OBIDate" + k; dateTab.AnchorXOffset = "0"; dateTab.AnchorYOffset = "-3"; dateTab.AnchorUnits = "pixels"; dateTab.AnchorIgnoreIfNotPresent = "true"; dateTab.AnchorMatchWholeWord = "true"; dateTab.Required = "false"; dateTab.Width = "50"; dateTab.Height = "15"; dateTab.FontSize = "Size9"; dateTab.Font = "Arial"; signer.Tabs.DateTabs.Add(dateTab); } for (int c = 1; c <= 5; c++) { Checkbox checkBox = new Checkbox(); checkBox.DocumentId = "1"; checkBox.RecipientId = "1"; checkBox.AnchorString = "cu0$chk" + c; checkBox.TabLabel = "MSRCheckBox" + c; checkBox.AnchorXOffset = "0"; checkBox.AnchorYOffset = "0"; checkBox.AnchorUnits = "inches"; checkBox.AnchorIgnoreIfNotPresent = "true"; signer.Tabs.CheckboxTabs.Add(checkBox); } envDef.Recipients.Signers.Add(signer); } } if (docDetails.JointSignerDetails != null && docDetails.JointSignerDetails.Count > 0) { for (int i = 0; i < docDetails.JointSignerDetails.Count; i++) { if (docDetails.JointSignerDetails.ElementAt(i).IsInPerson.ToLower() == "true") { InPersonSigner jointSigner = new InPersonSigner(); jointSigner.Tabs = new Tabs(); jointSigner.Tabs.SignHereTabs = new List <SignHere>(); jointSigner.Tabs.DateSignedTabs = new List <DateSigned>(); jointSigner.Tabs.TextTabs = new List <Text>(); jointSigner.Tabs.DateTabs = new List <Date>(); jointSigner.Tabs.CheckboxTabs = new List <Checkbox>(); //jointSigner.Name = docDetails.JointSignerDetails[i].ReciName; //jointSigner.Email = docDetails.JointSignerDetails[i].ReciEmail; //jointSigner.RecipientId = docDetails.JointSignerDetails[i].ReciId; //jointSigner.RoutingOrder = docDetails.JointSignerDetails[i].ReciId; jointSigner.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSigner.RoutingOrder = docDetails.JointSignerDetails[i].ReciId; jointSigner.InPersonSigningType = "inPersonSigner"; jointSigner.SignerName = docDetails.JointSignerDetails[i].ReciName; jointSigner.HostName = CUName; jointSigner.HostEmail = CUEmail; SignHere jointSignerTab = new SignHere(); jointSignerTab.DocumentId = "1"; jointSignerTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSignerTab.AnchorString = "Joint0w$ign" + (i + 1); jointSignerTab.AnchorXOffset = "0"; jointSignerTab.AnchorYOffset = "0"; jointSignerTab.AnchorUnits = "inches"; jointSignerTab.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.SignHereTabs.Add(jointSignerTab); DateSigned jointSigned = new DateSigned(); jointSigned.DocumentId = "1"; jointSigned.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSigned.AnchorString = "Joint0w$date" + (i + 1); jointSigned.AnchorXOffset = "0"; jointSigned.AnchorYOffset = "0"; jointSigned.AnchorUnits = "inches"; jointSigned.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.DateSignedTabs.Add(jointSigned); Text textTab = new Text(); textTab.DocumentId = "1"; textTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; textTab.AnchorString = "joint1$1nput"; textTab.AnchorXOffset = "0"; textTab.AnchorYOffset = "-3"; textTab.AnchorUnits = "pixels"; textTab.AnchorIgnoreIfNotPresent = "true"; textTab.AnchorMatchWholeWord = "true"; textTab.Required = "false"; textTab.Width = "75"; textTab.Height = "15"; textTab.FontSize = "Size10"; textTab.Font = "TimesNewRoman"; jointSigner.Tabs.TextTabs.Add(textTab); Date dateTab = new Date(); dateTab.DocumentId = "1"; dateTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; dateTab.AnchorString = "joint$D01B$"; dateTab.TabLabel = "date1"; dateTab.AnchorXOffset = "0"; dateTab.AnchorYOffset = "-3"; dateTab.AnchorUnits = "pixels"; dateTab.AnchorIgnoreIfNotPresent = "true"; dateTab.AnchorMatchWholeWord = "true"; dateTab.Required = "false"; dateTab.Width = "50"; dateTab.Height = "15"; dateTab.FontSize = "Size9"; dateTab.Font = "Arial"; jointSigner.Tabs.DateTabs.Add(dateTab); for (int c = 1; c <= 5; c++) { Checkbox checkBox = new Checkbox(); checkBox.DocumentId = "1"; checkBox.RecipientId = docDetails.JointSignerDetails[i].ReciId; checkBox.AnchorString = "cu0$chk" + c; checkBox.TabLabel = "MSRCheckBox" + c; checkBox.AnchorXOffset = "0"; checkBox.AnchorYOffset = "0"; checkBox.AnchorUnits = "inches"; checkBox.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.CheckboxTabs.Add(checkBox); } envDef.Recipients.InPersonSigners.Add(jointSigner); } else { Signer jointSigner = new Signer(); jointSigner.Tabs = new Tabs(); jointSigner.Tabs.SignHereTabs = new List <SignHere>(); jointSigner.Tabs.DateSignedTabs = new List <DateSigned>(); jointSigner.Tabs.TextTabs = new List <Text>(); jointSigner.Tabs.DateTabs = new List <Date>(); jointSigner.Tabs.CheckboxTabs = new List <Checkbox>(); jointSigner.Name = docDetails.JointSignerDetails[i].ReciName; jointSigner.Email = docDetails.JointSignerDetails[i].ReciEmail; jointSigner.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSigner.RoutingOrder = docDetails.JointSignerDetails[i].ReciId; SignHere jointSignerTab = new SignHere(); jointSignerTab.DocumentId = "1"; jointSignerTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSignerTab.AnchorString = "Joint0w$ign" + (i + 1); jointSignerTab.AnchorXOffset = "0"; jointSignerTab.AnchorYOffset = "0"; jointSignerTab.AnchorUnits = "inches"; jointSignerTab.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.SignHereTabs.Add(jointSignerTab); DateSigned jointSigned = new DateSigned(); jointSigned.DocumentId = "1"; jointSigned.RecipientId = docDetails.JointSignerDetails[i].ReciId; jointSigned.AnchorString = "Joint0w$date" + (i + 1); jointSigned.AnchorXOffset = "0"; jointSigned.AnchorYOffset = "0"; jointSigned.AnchorUnits = "inches"; jointSigned.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.DateSignedTabs.Add(jointSigned); Text textTab = new Text(); textTab.DocumentId = "1"; textTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; textTab.AnchorString = "joint1$1nput"; textTab.AnchorXOffset = "0"; textTab.AnchorYOffset = "-3"; textTab.AnchorUnits = "pixels"; textTab.AnchorIgnoreIfNotPresent = "true"; textTab.AnchorMatchWholeWord = "true"; textTab.Required = "false"; textTab.Width = "75"; textTab.Height = "15"; textTab.FontSize = "Size10"; textTab.Font = "TimesNewRoman"; jointSigner.Tabs.TextTabs.Add(textTab); Date dateTab = new Date(); dateTab.DocumentId = "1"; dateTab.RecipientId = docDetails.JointSignerDetails[i].ReciId; dateTab.AnchorString = "joint$D01B$"; dateTab.TabLabel = "date1"; dateTab.AnchorXOffset = "0"; dateTab.AnchorYOffset = "-3"; dateTab.AnchorUnits = "pixels"; dateTab.AnchorIgnoreIfNotPresent = "true"; dateTab.AnchorMatchWholeWord = "true"; dateTab.Required = "false"; dateTab.Width = "50"; dateTab.Height = "15"; dateTab.FontSize = "Size9"; dateTab.Font = "Arial"; jointSigner.Tabs.DateTabs.Add(dateTab); for (int c = 1; c <= 5; c++) { Checkbox checkBox = new Checkbox(); checkBox.DocumentId = "1"; checkBox.RecipientId = docDetails.JointSignerDetails[i].ReciId; checkBox.AnchorString = "cu0$chk" + c; checkBox.TabLabel = "MSRCheckBox" + c; checkBox.AnchorXOffset = "0"; checkBox.AnchorYOffset = "0"; checkBox.AnchorUnits = "inches"; checkBox.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.CheckboxTabs.Add(checkBox); } envDef.Recipients.Signers.Add(jointSigner); } } } if (docDetails.CUSignerDetails != null && docDetails.CUSignerDetails.Count > 0) { for (int i = 0; i < docDetails.CUSignerDetails.Count; i++) { Signer cuSigner = new Signer(); cuSigner.Tabs = new Tabs(); cuSigner.Tabs.SignHereTabs = new List <SignHere>(); cuSigner.Tabs.DateSignedTabs = new List <DateSigned>(); cuSigner.Tabs.TextTabs = new List <Text>(); cuSigner.Tabs.DateTabs = new List <Date>(); cuSigner.Tabs.CheckboxTabs = new List <Checkbox>(); cuSigner.Name = docDetails.CUSignerDetails[i].ReciName; cuSigner.Email = docDetails.CUSignerDetails[i].ReciEmail; cuSigner.RecipientId = docDetails.CUSignerDetails[i].ReciId; cuSigner.RoutingOrder = docDetails.CUSignerDetails[i].ReciId; SignHere cuSignerTab = new SignHere(); cuSignerTab.DocumentId = "1"; cuSignerTab.RecipientId = docDetails.CUSignerDetails[i].ReciId; cuSignerTab.AnchorString = "Cu0w$ign"; cuSignerTab.AnchorXOffset = "0"; cuSignerTab.AnchorYOffset = "0"; cuSignerTab.AnchorUnits = "inches"; cuSignerTab.AnchorIgnoreIfNotPresent = "true"; cuSigner.Tabs.SignHereTabs.Add(cuSignerTab); DateSigned cuSigned = new DateSigned(); cuSigned.DocumentId = "1"; cuSigned.RecipientId = docDetails.CUSignerDetails[i].ReciId; cuSigned.AnchorString = "Cu0w$date"; cuSigned.AnchorXOffset = "0"; cuSigned.AnchorYOffset = "0"; cuSigned.AnchorUnits = "inches"; cuSigned.AnchorIgnoreIfNotPresent = "true"; cuSigner.Tabs.DateSignedTabs.Add(cuSigned); for (int j = 1; j <= 6; j++) { Text textTab = new Text(); textTab.DocumentId = "1"; textTab.RecipientId = docDetails.CUSignerDetails[i].ReciId; textTab.AnchorString = "cu1$1nput" + j; textTab.TabLabel = "cuOfficialSec" + j; textTab.AnchorXOffset = "0"; textTab.AnchorYOffset = "-3"; textTab.AnchorUnits = "pixels"; textTab.AnchorIgnoreIfNotPresent = "true"; textTab.AnchorMatchWholeWord = "true"; textTab.Required = "false"; textTab.Width = "75"; textTab.Height = "15"; textTab.FontSize = "Size10"; textTab.Font = "TimesNewRoman"; cuSigner.Tabs.TextTabs.Add(textTab); } for (int k = 1; k <= 3; k++) { Date dateTab = new Date(); dateTab.DocumentId = "1"; dateTab.RecipientId = docDetails.CUSignerDetails[i].ReciId; dateTab.AnchorString = "cu$D01B$" + k; dateTab.TabLabel = "cuDate" + k; dateTab.AnchorXOffset = "0"; dateTab.AnchorYOffset = "-3"; dateTab.AnchorUnits = "pixels"; dateTab.AnchorIgnoreIfNotPresent = "true"; dateTab.AnchorMatchWholeWord = "true"; dateTab.Required = "false"; dateTab.Width = "50"; dateTab.Height = "15"; dateTab.FontSize = "Size9"; dateTab.Font = "Arial"; cuSigner.Tabs.DateTabs.Add(dateTab); } Text textTab1 = new Text(); textTab1.DocumentId = "1"; textTab1.RecipientId = docDetails.CUSignerDetails[i].ReciId; textTab1.AnchorString = "benComment$1nput"; textTab1.TabLabel = "BenComment"; textTab1.AnchorXOffset = "0"; textTab1.AnchorYOffset = "-3"; textTab1.AnchorUnits = "pixels"; textTab1.AnchorIgnoreIfNotPresent = "true"; textTab1.AnchorMatchWholeWord = "true"; textTab1.Required = "false"; textTab1.Width = "75"; textTab1.Height = "15"; textTab1.FontSize = "Size10"; textTab1.Font = "TimesNewRoman"; cuSigner.Tabs.TextTabs.Add(textTab1); Text textTab2 = new Text(); textTab2.DocumentId = "1"; textTab2.RecipientId = docDetails.CUSignerDetails[i].ReciId; textTab2.AnchorString = "RetailComment$1nput"; textTab2.TabLabel = "RetailComment"; textTab2.AnchorXOffset = "0"; textTab2.AnchorYOffset = "-3"; textTab2.AnchorUnits = "pixels"; textTab2.AnchorIgnoreIfNotPresent = "true"; textTab2.AnchorMatchWholeWord = "true"; textTab2.Required = "false"; textTab2.Width = "75"; textTab2.Height = "15"; textTab2.FontSize = "Size10"; textTab2.Font = "TimesNewRoman"; cuSigner.Tabs.TextTabs.Add(textTab2); Text textTab3 = new Text(); textTab3.DocumentId = "1"; textTab3.RecipientId = docDetails.CUSignerDetails[i].ReciId; textTab3.AnchorString = "Retailemployeeinfo$1nput"; textTab3.TabLabel = "Retailemployeeinfo"; textTab3.AnchorXOffset = "0"; textTab3.AnchorYOffset = "-3"; textTab3.AnchorUnits = "pixels"; textTab3.AnchorIgnoreIfNotPresent = "true"; textTab3.AnchorMatchWholeWord = "true"; textTab3.Required = "false"; textTab3.Width = "75"; textTab3.Height = "15"; textTab3.FontSize = "Size10"; textTab3.Font = "TimesNewRoman"; cuSigner.Tabs.TextTabs.Add(textTab3); for (int c = 1; c <= 5; c++) { Checkbox checkBox = new Checkbox(); checkBox.DocumentId = "1"; checkBox.RecipientId = docDetails.CUSignerDetails[i].ReciId; checkBox.AnchorString = "cu0$chk" + c; checkBox.TabLabel = "MSRCheckBox" + c; checkBox.AnchorXOffset = "0"; checkBox.AnchorYOffset = "0"; checkBox.AnchorUnits = "inches"; checkBox.AnchorIgnoreIfNotPresent = "true"; cuSigner.Tabs.CheckboxTabs.Add(checkBox); } envDef.Recipients.Signers.Add(cuSigner); } } envDef.Status = "sent"; envDef.EnforceSignerVisibility = "true"; if (Utility.IsEventLogged) { Utility.LogAction("Sending Create and send envelope request"); } EnvelopesApi envelopesApi = new EnvelopesApi(); EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); return(envelopeSummary.EnvelopeId); } catch (Exception ex) { Utility.LogAction("sending document to DocuSign failed with exception: " + ex.Message); throw; } }
public string SendForESign(List <DocumentField.SendDocumentInfo> docs) { bool _IsInperson = true; EnvelopeDefinition envDef = new EnvelopeDefinition(); envDef.EmailSubject = "Email subject"; envDef.EmailBlurb = "Email blurb"; envDef.Documents = new List <Document>(); #region Adding Doc One Document doc1 = new Document(); doc1.DocumentBase64 = docs[0].FileBase64String; doc1.Name = "document one"; doc1.DocumentId = "1"; doc1.FileExtension = "docx"; doc1.Pages = "1"; envDef.Documents.Add(doc1); #endregion #region Addding Doc Two Document doc2 = new Document(); doc2.DocumentBase64 = docs[1].FileBase64String; doc2.Name = "documnet two"; doc2.DocumentId = "2"; doc2.FileExtension = "docx"; doc2.Pages = "1"; envDef.Documents.Add(doc2); #endregion envDef.Recipients = new Recipients(); envDef.Recipients.Signers = new List <Signer>(); envDef.Recipients.InPersonSigners = new List <InPersonSigner>(); //envDef.EnforceSignerVisibility = "true"; // Adding Signers// #region ONE SIGNER if (!_IsInperson) { Signer signer = new Signer(); signer.Tabs = new Tabs(); signer.Tabs.SignHereTabs = new List <SignHere>(); signer.Tabs.CheckboxTabs = new List <Checkbox>(); signer.Tabs.DateSignedTabs = new List <DateSigned>(); signer.Name = "Signer One"; signer.Email = ConfigurationManager.AppSettings["Reci1Email"]; signer.RecipientId = "1"; signer.RoutingOrder = "1"; SignHere signHere = new SignHere(); signHere.DocumentId = "1"; signHere.RecipientId = "1"; signHere.AnchorString = "signhere1"; signHere.AnchorXOffset = "0"; signHere.AnchorYOffset = "0"; signHere.AnchorUnits = "inches"; signHere.AnchorIgnoreIfNotPresent = "false"; signer.Tabs.SignHereTabs.Add(signHere); DateSigned Datesign = new DateSigned(); Datesign.DocumentId = "1"; Datesign.RecipientId = "2"; Datesign.AnchorString = "DATEHERE1"; Datesign.AnchorXOffset = "0"; Datesign.AnchorYOffset = "0"; Datesign.AnchorUnits = "inches"; Datesign.AnchorIgnoreIfNotPresent = "true"; signer.Tabs.DateSignedTabs.Add(Datesign); envDef.Recipients.Signers.Add(signer); } #endregion #region IN-PERSON Signer //must be a docusign acc with inperson enabled //In-person signing mode if (_IsInperson) { #region impsigner1 InPersonSigner Impsigner = new InPersonSigner(); Impsigner.Tabs = new Tabs(); Impsigner.Tabs.SignHereTabs = new List <SignHere>(); Impsigner.Tabs.DateSignedTabs = new List <DateSigned>(); Impsigner.SignerName = "InpersonSigner one"; Impsigner.RecipientId = "1"; Impsigner.RoutingOrder = "1"; Impsigner.InPersonSigningType = "inPersonSigner"; Impsigner.HostName = "inperson host"; Impsigner.HostEmail = ConfigurationManager.AppSettings["ImpHostEmail"]; SignHere signHereImp = new SignHere(); signHereImp.DocumentId = "1"; signHereImp.RecipientId = "1"; signHereImp.AnchorString = "SIGNHERE1"; signHereImp.AnchorXOffset = "0"; signHereImp.AnchorYOffset = "0"; signHereImp.AnchorUnits = "inches"; signHereImp.AnchorIgnoreIfNotPresent = "false"; Impsigner.Tabs.SignHereTabs.Add(signHereImp); DateSigned signed = new DateSigned(); signed.DocumentId = "1"; signed.RecipientId = "1"; signed.AnchorString = "DATEHERE1"; signed.AnchorXOffset = "0"; signed.AnchorYOffset = "0"; signed.AnchorUnits = "inches"; signed.AnchorIgnoreIfNotPresent = "true"; Impsigner.Tabs.DateSignedTabs.Add(signed); envDef.Recipients.InPersonSigners.Add(Impsigner); #endregion #region ImpSigner2 InPersonSigner Impsigner2 = new InPersonSigner(); Impsigner2.Tabs = new Tabs(); Impsigner2.Tabs.SignHereTabs = new List <SignHere>(); Impsigner2.Tabs.DateSignedTabs = new List <DateSigned>(); Impsigner2.SignerName = "InpersonSigner two"; Impsigner2.RecipientId = "2"; Impsigner2.RoutingOrder = "2"; Impsigner2.InPersonSigningType = "inPersonSigner"; Impsigner2.HostName = "inperson host"; Impsigner2.HostEmail = ConfigurationManager.AppSettings["ImpHostEmail"]; SignHere signHereImp2 = new SignHere(); signHereImp2.DocumentId = "2"; signHereImp2.RecipientId = "1"; signHereImp2.AnchorString = "SIGNHERE2"; signHereImp2.AnchorXOffset = "0"; signHereImp2.AnchorYOffset = "0"; signHereImp2.AnchorUnits = "inches"; signHereImp2.AnchorIgnoreIfNotPresent = "false"; Impsigner2.Tabs.SignHereTabs.Add(signHereImp2); DateSigned signed2 = new DateSigned(); signed2.DocumentId = "1"; signed2.RecipientId = "1"; signed2.AnchorString = "DATEHERE2"; signed2.AnchorXOffset = "0"; signed2.AnchorYOffset = "0"; signed2.AnchorUnits = "inches"; signed2.AnchorIgnoreIfNotPresent = "true"; Impsigner2.Tabs.DateSignedTabs.Add(signed2); envDef.Recipients.InPersonSigners.Add(Impsigner2); } #endregion #region Adding ONE Joint Signer if (!_IsInperson) { Signer jointSigner = new Signer(); jointSigner.Tabs = new Tabs(); jointSigner.Tabs.SignHereTabs = new List <SignHere>(); jointSigner.Tabs.DateSignedTabs = new List <DateSigned>(); jointSigner.Name = "Joint Signer 1"; jointSigner.Email = ConfigurationManager.AppSettings["Reci2Email"]; jointSigner.RecipientId = "2"; jointSigner.RoutingOrder = "2"; SignHere jointSignerTab = new SignHere(); jointSignerTab.DocumentId = "1"; jointSignerTab.RecipientId = "2"; jointSignerTab.AnchorString = "SIGNHERE2"; jointSignerTab.AnchorXOffset = "0"; jointSignerTab.AnchorYOffset = "0"; jointSignerTab.AnchorUnits = "inches"; jointSignerTab.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.SignHereTabs.Add(jointSignerTab); DateSigned JODateSigned = new DateSigned(); JODateSigned.DocumentId = "1"; JODateSigned.RecipientId = "2"; JODateSigned.AnchorString = "DATEHERE2"; JODateSigned.AnchorXOffset = "0"; JODateSigned.AnchorYOffset = "0"; JODateSigned.AnchorUnits = "inches"; JODateSigned.AnchorIgnoreIfNotPresent = "true"; jointSigner.Tabs.DateSignedTabs.Add(JODateSigned); envDef.Recipients.Signers.Add(jointSigner); } #endregion #region ATTEMP SEND ENVELOPE envDef.Status = "sent"; string accountId = GetAccountID(); EnvelopesApi envelopesApi = new EnvelopesApi(); EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); #endregion var returnEnv = envelopesApi.GetEnvelope(accountId, envelopeSummary.EnvelopeId, null); //sending for e-sign string status = returnEnv.Status; return(envelopeSummary.EnvelopeId); }
protected void createEnvelope() { // Set up the envelope CreateEnvelopeRequest createEnvelopeRequest = new CreateEnvelopeRequest(); createEnvelopeRequest.emailSubject = "eNotary Example"; createEnvelopeRequest.status = "sent"; //Define inperson signers InPersonSigner inPersonSigner = new InPersonSigner(); // inPersonSigner.hostEmail = "*****@*****.**"; inPersonSigner.hostEmail = email.Value; inPersonSigner.hostName = firstname.Value + " " + lastname.Value; inPersonSigner.recipientId = "3"; inPersonSigner.routingOrder = "3"; inPersonSigner.inPersonSigningType = "notary"; NotaryHost notaryHost = new NotaryHost(); notaryHost.recipientId = 4; notaryHost.email = notaryEmail.Value; notaryHost.name = notaryFirstname.Value + " " + notaryLastname.Value; // Add tab for the recipient inPersonSigner.tabs = new Tabs(); inPersonSigner.tabs.signHereTabs = new List <SignHereTab>(); SignHereTab signHereTab = new SignHereTab(); signHereTab.documentId = "1"; signHereTab.pageNumber = "1"; signHereTab.tabId = "1"; signHereTab.xPosition = "110"; signHereTab.yPosition = "210"; signHereTab.name = "sigTab"; inPersonSigner.tabs.signHereTabs.Add(signHereTab); inPersonSigner.tabs.dateSignedTabs = new List <DateSignedTab>(); DateSignedTab dateSignedTab = new DateSignedTab(); dateSignedTab.documentId = "1"; dateSignedTab.pageNumber = "1"; dateSignedTab.tabId = "2"; dateSignedTab.xPosition = "425"; dateSignedTab.yPosition = "260"; dateSignedTab.name = "dateSignedTab"; inPersonSigner.tabs.dateSignedTabs.Add(dateSignedTab); inPersonSigner.tabs.fullNameTabs = new List <FullNameTab>(); FullNameTab fullNameTab = new FullNameTab(); fullNameTab.documentId = "1"; fullNameTab.pageNumber = "1"; fullNameTab.tabId = "3"; fullNameTab.xPosition = "90"; fullNameTab.yPosition = "150"; fullNameTab.name = "fullNameTab"; inPersonSigner.tabs.fullNameTabs.Add(fullNameTab); inPersonSigner.notaryHost = notaryHost; // Define a document Document document = new Document(); document.documentId = "1"; document.name = "Sample Form"; document.transformPdfFields = "true"; //document.display = "modal"; // Define an inline template InlineTemplate inline1 = new InlineTemplate(); inline1.sequence = "2"; inline1.recipients = new Recipients(); // inline1.recipients.signers = new List<Signer>(); // inline1.recipients.signers.Add(signer); inline1.recipients.inPersonSigners = new List <InPersonSigner>(); inline1.recipients.inPersonSigners.Add(inPersonSigner); // inline1.documents = new List<Document>(); // inline1.documents.Add(document); ServerTemplate serverTemplate1 = new ServerTemplate(); serverTemplate1.sequence = "1"; serverTemplate1.templateId = "d7a2c6d9-3b20-4086-a408-ada85efc00fd"; CompositeTemplate compositeTemplate1 = new CompositeTemplate(); compositeTemplate1.inlineTemplates = new List <InlineTemplate>(); compositeTemplate1.inlineTemplates.Add(inline1); // compositeTemplate1.serverTemplates = new List<ServerTemplate>(); // compositeTemplate1.serverTemplates.Add(serverTemplate1); compositeTemplate1.document = document; compositeTemplate1.document = new Document(); compositeTemplate1.document.documentId = "1"; compositeTemplate1.document.name = "Affidavit"; compositeTemplate1.document.transformPdfFields = "true"; //compositeTemplate1.document.display = "modal"; createEnvelopeRequest.compositeTemplates = new List <CompositeTemplate>(); createEnvelopeRequest.compositeTemplates.Add(compositeTemplate1); string output = JsonConvert.SerializeObject(createEnvelopeRequest); accountId.Value = ConfigurationManager.AppSettings["API.NotaryAccountID"]; // Specify a unique boundary string that doesn't appear in the json or document bytes. string Boundary = "MY_BOUNDARY"; // Set the URI HttpWebRequest request = HttpWebRequest.Create(ConfigurationManager.AppSettings["DocuSignServer"] + "/restapi/v2/accounts/" + accountId.Value + "/envelopes") as HttpWebRequest; // Set the method request.Method = "POST"; // Set the authentication header request.Headers["X-DocuSign-Authentication"] = GetSecurityHeader(); // Set the overall request content type aand boundary string request.ContentType = "multipart/form-data; boundary=" + Boundary; request.Accept = "application/json"; // Start forming the body of the request Stream reqStream = request.GetRequestStream(); // write boundary marker between parts WriteStream(reqStream, "\n--" + Boundary + "\n"); // write out the json envelope definition part WriteStream(reqStream, "Content-Type: application/json\n"); WriteStream(reqStream, "Content-Disposition: form-data\n"); WriteStream(reqStream, "\n"); // requires an empty line between the header and the json body WriteStream(reqStream, output); // write out the form bytes for the first form WriteStream(reqStream, "\n--" + Boundary + "\n"); WriteStream(reqStream, "Content-Type: application/pdf\n"); WriteStream(reqStream, "Content-Disposition: file; filename=\"Sample_Form\"; documentId=1\n"); WriteStream(reqStream, "\n"); String filename = "Docusign_Affidavit.pdf"; if (File.Exists(Server.MapPath("~/App_Data/" + filename))) { // Read the file contents and write them to the request stream byte[] buf = new byte[4096]; int len; // read contents of document into the request stream FileStream fileStream = File.OpenRead(Server.MapPath("~/App_Data/" + filename)); while ((len = fileStream.Read(buf, 0, 4096)) > 0) { reqStream.Write(buf, 0, len); } fileStream.Close(); } // wrte the end boundary marker - ensure that it is on its own line WriteStream(reqStream, "\n--" + Boundary + "--"); WriteStream(reqStream, "\n"); try { HttpWebResponse response = request.GetResponse() as HttpWebResponse; if (response.StatusCode == HttpStatusCode.Created) { byte[] responseBytes = new byte[response.ContentLength]; using (var reader = new System.IO.BinaryReader(response.GetResponseStream())) { reader.Read(responseBytes, 0, responseBytes.Length); } string responseText = Encoding.UTF8.GetString(responseBytes); CreateEnvelopeResponse createEnvelopeResponse = new CreateEnvelopeResponse(); createEnvelopeResponse = JsonConvert.DeserializeObject <CreateEnvelopeResponse>(responseText); if (createEnvelopeResponse.status.Equals("sent")) { Response.Redirect("ConfirmationPage.aspx"); } } } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { HttpWebResponse response = (HttpWebResponse)ex.Response; using (var reader = new System.IO.StreamReader(ex.Response.GetResponseStream(), UTF8Encoding.UTF8)) { string errorMess = reader.ReadToEnd(); log4net.ILog logger = log4net.LogManager.GetLogger(typeof(demos_eNotary)); logger.Info("\n----------------------------------------\n"); logger.Error("DocuSign Error: " + errorMess); logger.Error(ex.StackTrace); Response.Write(ex.Message); } } else { log4net.ILog logger = log4net.LogManager.GetLogger(typeof(demos_eNotary)); logger.Info("\n----------------------------------------\n"); logger.Error("WebRequest Error: " + ex.Message); logger.Error(ex.StackTrace); Response.Write(ex.Message); } } }