private BulkRecipientsSummaryResponse MockBulkRecipientsSummaryResponse()
        {
            BulkRecipient bulkRecipient1 = new BulkRecipient(
                Email: "*****@*****.**",
                Name: "John Jay",
                Note: "Hello How are you doing!"
                );
            BulkRecipient bulkRecipient2 = new BulkRecipient(
                Email: "*****@*****.**",
                Name: "jon jon",
                AccessCode: "123",
                PhoneNumber: "12345567"
                );
            BulkRecipient bulkRecipient3 = new BulkRecipient(
                Email: "*****@*****.**",
                Name: "tom tom"
                );

            List <BulkRecipient> bulkRecipients = new List <BulkRecipient> {
                bulkRecipient1, bulkRecipient2, bulkRecipient3
            };

            BulkRecipientsRequest bulkRecipientsRequest = new BulkRecipientsRequest(bulkRecipients);

            BulkEnvelopesApi bulkEnvelopesApi = new BulkEnvelopesApi();

            return(bulkEnvelopesApi.UpdateRecipients(testConfig.AccountId, testConfig.EnvelopeId, "1", bulkRecipientsRequest));
        }
        private BulkRecipientsSummaryResponse MockBulkRecipientsSummaryResponse()
        {
            string bulkRecipientsCSV = "name,email\n" + "John Doe,[email protected]\n" + "Jane Doe,[email protected]";

            byte[] bulkRecipientsRequest = Encoding.ASCII.GetBytes(bulkRecipientsCSV);

            BulkEnvelopesApi bulkEnvelopesApi = new BulkEnvelopesApi();

            return(bulkEnvelopesApi.UpdateRecipients(testConfig.AccountId, testConfig.EnvelopeId, "1", bulkRecipientsRequest));
        }
Esempio n. 3
0
        /// <summary>
        /// Sends the bulk envelopes
        /// </summary>
        /// <param name="accessToken">Access Token for API call (OAuth)</param>
        /// <param name="basePath">BasePath for API calls (URI)</param>
        /// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param>
        /// <param name="signer1Name"> The signer recipient's name</param>
        /// <param name="signer1Email"> The signer recipient's email</param>
        /// <param name="carbonCopy1Name">The cc recipient's name</param>
        /// <param name="signer1Email"> The cc recipient's email</param>
        /// <param name="signer2Name"> The signers recipient's name</param>
        /// <param name="signer2Email"> The signers recipient's email</param>
        /// <param name="carbonCopy2Name">The cc recipient's name</param>
        /// <param name="signer2Email"> The cc recipient's email</param>
        /// <param name="docDocx">The document</param>
        /// <returns>The status of sending</returns>
        public static BulkEnvelopeStatus GetStatus(string signer1Name, string signer1Email, string carbonCopy1Name, string carbonCopy1Email, string signer2Name, string signer2Email, string carbonCopy2Name, string carbonCopy2Email, string accessToken, string basePath, string accountId, string docDocx, string envelopeIdStamping, string emailSubject)
        {
            // Step 1. Construct your API headers
            var config = new Configuration(new ApiClient(basePath));

            config.AddDefaultHeader("Authorization", "Bearer " + accessToken);

            var bulkEnvelopesApi = new BulkEnvelopesApi(config);

            // Construct request body
            var sendingList = MakeBulkSendList(signer1Name, signer1Email, carbonCopy1Name, carbonCopy1Email, signer2Name, signer2Email, carbonCopy2Name, carbonCopy2Email);


            // Step 2. Submit a bulk list
            var createBulkListResult = bulkEnvelopesApi.CreateBulkSendList(accountId, sendingList);


            // Step 3. Create an envelope
            var envelopeDefinition = new EnvelopeDefinition
            {
                Documents = new List <Document>
                {
                    new Document
                    {
                        DocumentBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(docDocx)),
                        Name           = "Battle Plan",
                        FileExtension  = "docx",
                        DocumentId     = "1"
                    }
                },
                EnvelopeIdStamping = envelopeIdStamping,
                EmailSubject       = emailSubject,
                Status             = "created"
            };

            EnvelopesApi envelopesApi    = new EnvelopesApi(config);
            var          envelopeResults = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);

            // Step 4. Attach your bulk list ID to the envelope
            // Add an envelope custom field set to the value of your listId (EnvelopeCustomFields::create)
            // This Custom Field is used for tracking your Bulk Send via the Envelopes::Get method

            var fields = new CustomFields
            {
                ListCustomFields = new List <ListCustomField> {
                },

                TextCustomFields = new List <TextCustomField>
                {
                    new TextCustomField
                    {
                        Name     = "mailingListId",
                        Required = "false",
                        Show     = "false",
                        Value    = createBulkListResult.ListId  //Adding the BULK_LIST_ID as an Envelope Custom Field
                    }
                }
            };

            envelopesApi.CreateCustomFields(accountId, envelopeResults.EnvelopeId, fields);

            // Step 5. Add placeholder recipients.
            // These will be replaced by the details provided in the Bulk List uploaded during Step 2
            // Note: The name / email format used is:
            // Name: Multi Bulk Recipients::{rolename}
            // Email: MultiBulkRecipients-{rolename}@docusign.com

            var recipients = new Recipients
            {
                Signers = new List <Signer>
                {
                    new Signer
                    {
                        Name           = "Multi Bulk Recipient::signer",
                        Email          = "*****@*****.**",
                        RoleName       = "signer",
                        RoutingOrder   = "1",
                        Status         = "sent",
                        DeliveryMethod = "Email",
                        RecipientId    = "1",
                        RecipientType  = "signer"
                    },
                    new Signer
                    {
                        Name           = "Multi Bulk Recipient::cc",
                        Email          = "*****@*****.**",
                        RoleName       = "cc",
                        RoutingOrder   = "1",
                        Status         = "sent",
                        DeliveryMethod = "Email",
                        RecipientId    = "2",
                        RecipientType  = "cc"
                    }
                }
            };

            envelopesApi.CreateRecipient(accountId, envelopeResults.EnvelopeId, recipients);

            // Step 6. Initiate bulk send
            var bulkRequestResult = bulkEnvelopesApi.CreateBulkSendRequest(accountId, createBulkListResult.ListId, new BulkSendRequest {
                EnvelopeOrTemplateId = envelopeResults.EnvelopeId
            });

            // TODO: instead of waiting 5 seconds, consider using the Asynchrnous method
            System.Threading.Thread.Sleep(5000);

            // Step 7. Confirm successful batch send
            return(bulkEnvelopesApi.Get(accountId, bulkRequestResult.BatchId));
        }
        public IActionResult SetProfile(RecipientModel signer1, RecipientModel carbonCopy1, RecipientModel signer2, RecipientModel carbonCopy2)
        {
            // Check the minimal buffer time.
            bool tokenOk = CheckToken(3);

            if (!tokenOk)
            {
                // We could store the parameters of the requested operation so it could be
                // restarted automatically. But since it should be rare to have a token issue
                // here, we'll make the user re-enter the form data after authentication.
                RequestItemsService.EgName = EgName;
                return(Redirect("/ds/mustAuthenticate"));
            }

            var basePath = RequestItemsService.Session.BasePath + "/restapi";

            // Step 1. Obtain your OAuth token
            var accessToken = RequestItemsService.User.AccessToken;  // Represents your {ACCESS_TOKEN}
            var accountId   = RequestItemsService.Session.AccountId; // Represents your {ACCOUNT_ID}

            // Step 2. Construct your API headers
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);

            var bulkEnvelopesApi = new BulkEnvelopesApi(apiClient);

            // Construct request body
            var sendingList = this.MakeBulkSendList(signer1, carbonCopy1, signer2, carbonCopy2);

            try
            {
                // Step 3. Submit a bulk list
                var createBulkListResult = bulkEnvelopesApi.CreateBulkSendList(accountId, sendingList);


                // Step 4. Create an envelope
                var envelopeDefinition = new EnvelopeDefinition
                {
                    Documents = new List <Document>
                    {
                        new Document
                        {
                            DocumentBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(Config.docDocx)),
                            Name           = "Battle Plan",
                            FileExtension  = "docx",
                            DocumentId     = "1"
                        }
                    },
                    EnvelopeIdStamping = "true",
                    EmailSubject       = "Please sign this document sent from the C# SDK",
                    Status             = "created"
                };

                var envelopesApi    = new EnvelopesApi(apiClient);
                var envelopeResults = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);

                // Step 5. Attach your bulk list ID to the envelope
                // Add an envelope custom field set to the value of your listId (EnvelopeCustomFields::create)
                // This Custom Field is used for tracking your Bulk Send via the Envelopes::Get method

                var fields = new CustomFields
                {
                    ListCustomFields = new List <ListCustomField> {
                    },

                    TextCustomFields = new List <TextCustomField>
                    {
                        new TextCustomField
                        {
                            Name     = "mailingListId",
                            Required = "false",
                            Show     = "false",
                            Value    = createBulkListResult.ListId //Adding the BULK_LIST_ID as an Envelope Custom Field
                        }
                    }
                };
                envelopesApi.CreateCustomFields(accountId, envelopeResults.EnvelopeId, fields);

                // Step 6. Add placeholder recipients.
                // These will be replaced by the details provided in the Bulk List uploaded during Step 3
                // Note: The name / email format used is:
                // Name: Multi Bulk Recipients::{rolename}
                // Email: MultiBulkRecipients-{rolename}@docusign.com

                var recipients = new Recipients
                {
                    Signers = new List <Signer>
                    {
                        new Signer
                        {
                            Name           = "Multi Bulk Recipient::signer",
                            Email          = "*****@*****.**",
                            RoleName       = "signer",
                            RoutingOrder   = "1",
                            Status         = "sent",
                            DeliveryMethod = "Email",
                            RecipientId    = "1",
                            RecipientType  = "signer"
                        },
                        new Signer
                        {
                            Name           = "Multi Bulk Recipient::cc",
                            Email          = "*****@*****.**",
                            RoleName       = "cc",
                            RoutingOrder   = "1",
                            Status         = "sent",
                            DeliveryMethod = "Email",
                            RecipientId    = "2",
                            RecipientType  = "cc"
                        }
                    }
                };
                envelopesApi.CreateRecipient(accountId, envelopeResults.EnvelopeId, recipients);


                //Step 7. Initiate bulk send

                var bulkRequestResult = bulkEnvelopesApi.CreateBulkSendRequest(accountId, createBulkListResult.ListId,
                                                                               new BulkSendRequest
                {
                    EnvelopeOrTemplateId =
                        envelopeResults.EnvelopeId
                });

                //Wait until all requests sent. For 2000 recipients, it can take about 1h.
                System.Threading.Thread.Sleep(5000);


                Console.WriteLine("Bulk Batch ID: " + bulkRequestResult.BatchId);

                // Step 8. Confirm successful batch send
                var status = bulkEnvelopesApi.GetBulkSendBatchStatus(accountId, bulkRequestResult.BatchId);

                ViewBag.h1      = "Bulk send envelope was successfully performed!";
                ViewBag.message = $@"Bulk request queued to {status.Queued} user lists.";
            }
            catch (Exception ex)
            {
                ViewBag.h1      = "Bulk send envelope failed.";
                ViewBag.message = $@"Bulk request failed to send. Reason: {ex}.";
            }

            return(View("example_done"));
        }
 public void Init()
 {
     instance = new BulkEnvelopesApi();
 }
        /// <summary>
        /// Sends the bulk envelopes
        /// </summary>
        /// <param name="accessToken">Access Token for API call (OAuth)</param>
        /// <param name="basePath">BasePath for API calls (URI)</param>
        /// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param>
        /// <param name="signer1Name"> The signer recipient's name</param>
        /// <param name="signer1Email"> The signer recipient's email</param>
        /// <param name="carbonCopy1Name">The cc recipient's name</param>
        /// <param name="signer1Email"> The cc recipient's email</param>
        /// <param name="signer2Name"> The signers recipient's name</param>
        /// <param name="signer2Email"> The signers recipient's email</param>
        /// <param name="carbonCopy2Name">The cc recipient's name</param>
        /// <param name="signer2Email"> The cc recipient's email</param>
        /// <param name="docDocx">The document</param>
        /// <returns>The status of sending</returns>
        public static BulkSendBatchStatus GetStatus(string signer1Name, string signer1Email, string carbonCopy1Name, string carbonCopy1Email, string signer2Name, string signer2Email, string carbonCopy2Name, string carbonCopy2Email, string accessToken, string basePath, string accountId, string docDocx, string envelopeIdStamping, string emailSubject)
        {
            // Step 2 start
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
            // Step 2 end

            var bulkEnvelopesApi = new BulkEnvelopesApi(apiClient);

            // Step 3-1 start
            var sendingList = MakeBulkSendList(signer1Name, signer1Email, carbonCopy1Name, carbonCopy1Email, signer2Name, signer2Email, carbonCopy2Name, carbonCopy2Email);

            var createBulkListResult = bulkEnvelopesApi.CreateBulkSendList(accountId, sendingList);
            // Step 3-1 end


            // Step 4 start
            var envelopeDefinition = new EnvelopeDefinition
            {
                Documents = new List <Document>
                {
                    new Document
                    {
                        DocumentBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(docDocx)),
                        Name           = "Lorem Ipsum",
                        FileExtension  = "pdf",
                        DocumentId     = "1"
                    }
                },
                EnvelopeIdStamping = envelopeIdStamping,
                EmailSubject       = emailSubject,
                Status             = "created",
                Recipients         = new Recipients
                {
                    Signers = new List <Signer>
                    {
                        new Signer
                        {
                            Name           = "Multi Bulk Recipient::signer",
                            Email          = "*****@*****.**",
                            RoleName       = "signer",
                            RoutingOrder   = "1",
                            Status         = "created",
                            DeliveryMethod = "Email",
                            RecipientId    = "1",
                            RecipientType  = "signer",
                            Tabs           = new Tabs
                            {
                                SignHereTabs = new List <SignHere>
                                {
                                    new SignHere
                                    {
                                        AnchorString  = "/sn1/",
                                        AnchorUnits   = "pixels",
                                        AnchorYOffset = "10",
                                        AnchorXOffset = "20"
                                    }
                                }
                            }
                        }
                    },
                    CarbonCopies = new List <CarbonCopy>
                    {
                        new CarbonCopy
                        {
                            Name           = "Multi Bulk Recipient::cc",
                            Email          = "*****@*****.**",
                            RoleName       = "cc",
                            RoutingOrder   = "2",
                            Status         = "created",
                            DeliveryMethod = "Email",
                            RecipientId    = "2",
                            RecipientType  = "cc"
                        }
                    }
                }
            };

            EnvelopesApi envelopesApi    = new EnvelopesApi(apiClient);
            var          envelopeResults = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
            // Step 4 end

            // Attach your bulk list ID to the envelope
            // Add an envelope custom field set to the value of your listId (EnvelopeCustomFields::create)
            // This Custom Field is used for tracking your Bulk Send via the Envelopes::Get method
            // Step 5 start
            var fields = new CustomFields
            {
                ListCustomFields = new List <ListCustomField> {
                },

                TextCustomFields = new List <TextCustomField>
                {
                    new TextCustomField
                    {
                        Name     = "mailingListId",
                        Required = "false",
                        Show     = "false",
                        Value    = createBulkListResult.ListId  //Adding the BULK_LIST_ID as an Envelope Custom Field
                    }
                }
            };

            envelopesApi.CreateCustomFields(accountId, envelopeResults.EnvelopeId, fields);
            // Step 5 end


            // Step 6 start
            var bulkRequestResult = bulkEnvelopesApi.CreateBulkSendRequest(accountId, createBulkListResult.ListId, new BulkSendRequest {
                EnvelopeOrTemplateId = envelopeResults.EnvelopeId
            });

            // TODO: instead of waiting 10 seconds, consider using the Asynchrnous method
            System.Threading.Thread.Sleep(10000);
            // Step 6 end

            // Step 7 start
            return(bulkEnvelopesApi.GetBulkSendBatchStatus(accountId, bulkRequestResult.BatchId));
            // Step 7 end
        }