// 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);
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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);
            }
        }
    }