Beispiel #1
0
 private void TextSGTabBtn_Click(object sender, System.EventArgs e)
 {
     RegisterTab.Hide();
     DataTabContainer.Hide();
     DataTab.Hide();
     TextTab.Show();
     TextTab.SetRegisterEditable("Not Register");
     RegisterTabPanel.BackColor = ColorTranslator.FromHtml("#1A1A1A");
     DataTabPanel.BackColor     = ColorTranslator.FromHtml("#1A1A1A");
     TextTabPanel.BackColor     = ColorTranslator.FromHtml("#94BC00");
 }
Beispiel #2
0
 private void DataSGTabBtn_Click(object sender, System.EventArgs e)
 {
     DataMemLocTxt.Text = "Enter Memory Location";
     RegisterTab.Hide();
     DataTab.Show();
     DataTabContainer.Show();
     TextTab.Hide();
     DataTab.SetRegisterEditable("Not Register");
     RegisterTabPanel.BackColor = ColorTranslator.FromHtml("#1A1A1A");
     DataTabPanel.BackColor     = ColorTranslator.FromHtml("#94BC00");
     TextTabPanel.BackColor     = ColorTranslator.FromHtml("#1A1A1A");
 }
Beispiel #3
0
 private void RegisterSGTabBtn_Click(object sender, System.EventArgs e)
 {
     RegisterTab.SetTemplateDT(MainCTRL.GenerateRegisterSGDT());
     RegisterTab.Show();
     DataTabContainer.Hide();
     DataTab.Hide();
     TextTab.Hide();
     RegisterSGTabBtn.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255);
     RegisterSGTabBtn.FlatAppearance.BorderSize  = 0;
     RegisterSGTabBtn.NotifyDefault(false);
     RegisterTabPanel.BackColor = ColorTranslator.FromHtml("#94BC00");
     DataTabPanel.BackColor     = ColorTranslator.FromHtml("#1A1A1A");
     TextTabPanel.BackColor     = ColorTranslator.FromHtml("#1A1A1A");
 }
        void CreateTabs(IList <string> pageList)
        {
            var clientSize = this.ClientSize;

            clientSize.Width  -= this.Padding.X * 2;
            clientSize.Height -= this.Padding.Y * 2 + 30;

            foreach (var name in pageList)
            {
                var tabPage = new TextTab(name);

                tabPage.TextForm.ClientSize = clientSize;
                Controls.Add(tabPage);
                textTabs.Add(tabPage);
            }
        }
Beispiel #5
0
        private void SingleStepBtn_Click(object sender, EventArgs e)
        {
            try
            {
                if (IsAssembled)
                {
                    int nextValue = Int32.Parse(Converter.ConvertHexToDec(OperationController.NextAddr.Replace("0x", "")));
                    int lastAddr  = Int32.Parse(Converter.ConvertHexToDec(MainCTRL.txSG[MainCTRL.txSG.Count - 1].Address.Replace("0x", "")));
                    if (nextValue <= lastAddr)
                    {
                        MainCTRL.rxSG = MainCTRL.InitializeRegister(RegisterTab.ConvertDGtoDT("Register"));
                        TextSegment tx = MainCTRL.txSG.Where(x => x.Address == OperationController.NextAddr).FirstOrDefault();
                        MainCTRL.rxSG = OperationController.ExecuteOperation(tx, MainCTRL.DataSGDT, MainCTRL.rxSG);

                        RegisterTab.SetTemplateDT(MainCTRL.GenerateRegisterSGDT());
                        TextTab.SetSelectedRow(tx.Address, "TextSegment");
                        TextSGTabBtn_Click(sender, e);

                        // Cache Simulation
                        SimulateCache(tx);
                    }
                    else
                    {
                        IsDone = true;
                        UpdateErrorLog(ValidateInput.ExecuteMsg());
                    }
                }
                else
                {
                    MessageBox.Show("Please resolve all errors or warning before simulation.", "WARNING", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #6
0
        private void BuildBtn_Click(object sender, System.EventArgs e)
        {
            try
            {
                IsDone = false;
                UpdateErrorLog(ValidateInput.AssembleMsg());
                //string err = MainCTRL.BuildSourceCode(BlockSizeTxt.Text, CacheSizeTxt.Text,
                //    CodeEditorTxt.Text, IsMRU, IsLRU);
                string err = MainCTRL.BuildSourceCode(BlockSizeTxt.Text, CacheSizeTxt.Text,
                                                      CodeEditorCtrl.GetCodeEditorRTB(), IsMRU);
                if (string.IsNullOrEmpty(err))
                {
                    int cacheRowCount = 4 * Int32.Parse(BlockSizeTxt.Text) * Int32.Parse(CacheSizeTxt.Text);
                    MainCTRL.InitializeCache(cacheRowCount, Int32.Parse(BlockSizeTxt.Text));
                    SetCacheDT(MainCTRL.GenerateCacheDT());
                    int wordSize = DataCleaner.BitCounter(Int32.Parse(BlockSizeTxt.Text));
                    CacheController.Init(11 - wordSize, wordSize, Int32.Parse(BlockSizeTxt.Text));

                    UpdateErrorLog(ValidateInput.NoErr());
                    DataTab.SetTemplateDT(MainCTRL.GenerateDataSGDT());
                    TextTab.SetTemplateDT(MainCTRL.GenerateTextSGDT());
                    TextTab.SetColumnWidth();
                    IsAssembled = true;
                    OperationController.NextAddr = "0x00001000";
                }
                else
                {
                    UpdateErrorLog(err);
                    IsAssembled = false;
                }
            }
            catch (Exception ex)
            {
                IsAssembled = false;
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #7
0
    protected void createEnvelopeResponsive()
    {
        // Set up the envelope
        CreateEnvelopeRequest createEnvelopeRequest = new CreateEnvelopeRequest();

        createEnvelopeRequest.emailSubject = "Business Credit Card Approval";
        createEnvelopeRequest.status       = "sent";
        createEnvelopeRequest.emailBlurb   = "Please review & DocuSign your business credit cards approval";

        // Define first signer
        Signer signer = new Signer();

        signer.email        = Email.Value;
        signer.name         = firstName.Value + ' ' + lastName.Value;
        signer.recipientId  = 1;
        signer.routingOrder = "1";
        signer.roleName     = "signer";
        signer.clientUserId = RandomizeClientUserID();


        //// Add tabs for the signer
        signer.tabs = new Tabs();
        signer.tabs.dateSignedTabs = new List <DateSignedTab>();
        DateSignedTab dateSignedTab = new DateSignedTab();

        dateSignedTab.documentId  = "1";
        dateSignedTab.pageNumber  = "1";
        dateSignedTab.font        = "arial";
        dateSignedTab.fontSize    = "size12";
        dateSignedTab.fontColor   = "black";
        dateSignedTab.recipientId = "1";
        dateSignedTab.tabLabel    = "clientDateSigned";
        signer.tabs.dateSignedTabs.Add(dateSignedTab);


        signer.tabs.signHereTabs = new List <SignHereTab>();
        SignHereTab signHereTab = new SignHereTab();

        signHereTab.stampType   = "signature";
        signHereTab.name        = "SignHere";
        signHereTab.tabLabel    = "clientSignature";
        signHereTab.scaleValue  = "1";
        signHereTab.optional    = "false";
        signHereTab.recipientId = "1";
        signer.tabs.signHereTabs.Add(signHereTab);

        signer.tabs.textTabs = new List <TextTab>();
        TextTab texttab2 = new TextTab();

        texttab2.isPaymentAmount              = "false";
        texttab2.validationMessage            = "";
        texttab2.validationPattern            = "";
        texttab2.shared                       = "false";
        texttab2.requireInitialOnSharedChange = "false";
        texttab2.requireAll                   = "false";
        texttab2.value    = firstName.Value + " " + lastName.Value + "/" + title.Value;
        texttab2.required = "true";
        texttab2.locked   = "true";
        texttab2.concealValueOnDocument = "false";
        texttab2.disableAutoSize        = "false";
        texttab2.maxLength   = "4000";
        texttab2.tabLabel    = "Approver";
        texttab2.font        = "arial";
        texttab2.bold        = "false";
        texttab2.italic      = "false";
        texttab2.underline   = "false";
        texttab2.fontColor   = "black";
        texttab2.fontSize    = "size12";
        texttab2.documentId  = "1";
        texttab2.recipientId = "1";
        texttab2.width       = "100";
        texttab2.height      = "11";
        signer.tabs.textTabs.Add(texttab2);

        TextTab texttab3 = new TextTab();

        texttab3.isPaymentAmount              = "false";
        texttab3.validationMessage            = "";
        texttab3.validationPattern            = "";
        texttab3.shared                       = "false";
        texttab3.requireInitialOnSharedChange = "false";
        texttab3.requireAll                   = "false";
        texttab3.value    = businessName.Value;
        texttab3.required = "true";
        texttab3.locked   = "true";
        texttab3.concealValueOnDocument = "false";
        texttab3.disableAutoSize        = "false";
        texttab3.maxLength   = "4000";
        texttab3.tabLabel    = "BusinessName";
        texttab3.font        = "arial";
        texttab3.bold        = "false";
        texttab3.italic      = "false";
        texttab3.underline   = "false";
        texttab3.fontColor   = "black";
        texttab3.fontSize    = "size12";
        texttab3.documentId  = "1";
        texttab3.recipientId = "1";
        texttab3.width       = "60";
        texttab3.height      = "11";
        signer.tabs.textTabs.Add(texttab3);



        createEnvelopeRequest.recipients = new Recipients();

        createEnvelopeRequest.recipients.signers = new List <Signer>();
        createEnvelopeRequest.recipients.signers.Add(signer);

        // Define a document
        Document document = new Document();

        document.documentId     = "1";
        document.name           = "Business Credit Card Approval";
        document.htmlDefinition = new HtmlDefinition();
        // Read in the HTML file
        document.htmlDefinition.source = File.ReadAllText(Server.MapPath("~/App_Data/") + "digbankingdemo.html");

        // Define display anchors
        document.htmlDefinition.displayAnchors = new List <DisplayAnchor>();
        DisplayAnchor displayAnchor = new DisplayAnchor();

        displayAnchor.startAnchor                = "responsive_table_start";
        displayAnchor.endAnchor                  = "responsive_table_end";
        displayAnchor.removeEndAnchor            = true;
        displayAnchor.removeStartAnchor          = true;
        displayAnchor.caseSensitive              = true;
        displayAnchor.displaySettings            = new DisplaySettings();
        displayAnchor.displaySettings.display    = "responsive_table_single_column";
        displayAnchor.displaySettings.tableStyle = "margin-bottom: 20px;width:100%;max-width:816px;margin-left:auto;margin-right:auto;";
        displayAnchor.displaySettings.cellStyle  = "text-align:left;border:solid 0px #000;margin:0px;padding:0px;";
        document.htmlDefinition.displayAnchors.Add(displayAnchor);

        createEnvelopeRequest.documents = new List <Document>();
        createEnvelopeRequest.documents.Add(document);
        createEnvelopeRequest.brandId = ConfigurationManager.AppSettings["MomentumBrandID"];



        // Set up Connect
        createEnvelopeRequest.eventNotification = getConnectSetup();


        string output = JsonConvert.SerializeObject(createEnvelopeRequest);

        // Set the URI
        HttpWebRequest request = HttpWebRequest.Create(ConfigurationManager.AppSettings["DocuSignServer"] + "/restapi/vdev/accounts/" + ConfigurationManager.AppSettings["API.AccountId"] + "/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 = "application/json";
        request.Accept      = "application/json";

        // Start forming the body of the request
        Stream reqStream = request.GetRequestStream();


        WriteStream(reqStream, "\n"); // requires an empty line between the header and the json body
        WriteStream(reqStream, output);



        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"))
                {
                    // Now that we have created the envelope, get the recipient token for the first signer
                    String url = Request.Url.AbsoluteUri;
                    RecipientViewRequest recipientViewRequest = new RecipientViewRequest();
                    recipientViewRequest.authenticationMethod = "email";
                    recipientViewRequest.clientUserId         = signer.clientUserId;
                    recipientViewRequest.email     = Email.Value;
                    recipientViewRequest.returnUrl = url.Substring(0, url.LastIndexOf("/")) + "/ConfirmationScreen.aspx";
                    recipientViewRequest.userName  = firstName.Value + " " + lastName.Value;

                    HttpWebRequest request2 = HttpWebRequest.Create(ConfigurationManager.AppSettings["DocuSignServer"] + "/restapi/v2/accounts/" + ConfigurationManager.AppSettings["API.TemplatesAccountID"] + "/envelopes/" + createEnvelopeResponse.envelopeId + "/views/recipient") as HttpWebRequest;
                    request2.Method = "POST";

                    // Set the authenticationheader
                    request2.Headers["X-DocuSign-Authentication"] = GetSecurityHeader();

                    request2.Accept      = "application/json";
                    request2.ContentType = "application/json";

                    Stream reqStream2 = request2.GetRequestStream();

                    WriteStream(reqStream2, JsonConvert.SerializeObject(recipientViewRequest));
                    HttpWebResponse response2 = request2.GetResponse() as HttpWebResponse;

                    responseBytes = new byte[response2.ContentLength];
                    using (var reader = new System.IO.BinaryReader(response2.GetResponseStream()))
                    {
                        reader.Read(responseBytes, 0, responseBytes.Length);
                    }
                    string response2Text = Encoding.UTF8.GetString(responseBytes);

                    RecipientViewResponse recipientViewResponse = new RecipientViewResponse();
                    recipientViewResponse = JsonConvert.DeserializeObject <RecipientViewResponse>(response2Text);
                    Session.Add("envelopeID", createEnvelopeResponse.envelopeId);

                    Response.Redirect(recipientViewResponse.url);
                }
            }
        }
        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(BusinessCCApproval));
                    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(BusinessCCApproval));
                logger.Info("\n----------------------------------------\n");
                logger.Error("WebRequest Error: " + ex.Message);
                logger.Error(ex.StackTrace);
                Response.Write(ex.Message);
            }
        }
    }
Beispiel #8
0
 public void Dispose()
 {
     TextTab.SafeDispose();
     //ScriptsTab.SafeDispose();
 }
    protected void createEnvelope()
    {
        // Set up the envelope
        CreateEnvelopeRequest createEnvelopeRequest = new CreateEnvelopeRequest();

        createEnvelopeRequest.emailSubject = "PDF Form Fields Example";
        createEnvelopeRequest.status       = "sent";
        createEnvelopeRequest.emailBlurb   = "Example of how to enable forms to work with DocuSign using PDF Form Fields (Magicstrings)";

        // Define first signer
        Signer signer = new Signer();

        signer.email        = email.Value;
        signer.name         = firstname.Value + " " + lastname.Value;
        signer.recipientId  = 1;
        signer.routingOrder = "1";
        signer.roleName     = "Signer1";
        signer.clientUserId = RandomizeClientUserID();  // First signer is embedded

        // Define 2nd signer
        Signer signer2 = new Signer();

        signer2.email        = jointEmail.Value;
        signer2.name         = jointFirstname.Value + " " + jointLastname.Value;
        signer2.recipientId  = 2;
        signer2.routingOrder = "2";
        signer2.roleName     = "Signer2";

        // Add tabs for the 1st signer. Define the pattern that assigns the form field to a particular signer
        signer.tabs = new Tabs();
        signer.tabs.signHereTabs = new List <SignHereTab>();
        SignHereTab signHereTab = new SignHereTab();

        signHereTab.documentId  = "1";
        signHereTab.recipientId = "1";
        signHereTab.tabLabel    = signer1MagicPattern.Value;
        signer.tabs.signHereTabs.Add(signHereTab);



        signer.tabs.dateSignedTabs = new List <DateSignedTab>();
        DateSignedTab dateSignedTab = new DateSignedTab();

        dateSignedTab.documentId  = "1";
        dateSignedTab.recipientId = "1";
        dateSignedTab.tabLabel    = signer1MagicPattern.Value;
        signer.tabs.dateSignedTabs.Add(dateSignedTab);

        signer.tabs.fullNameTabs = new List <FullnameTab>();
        FullnameTab fullnameTab = new FullnameTab();

        fullnameTab.documentId  = "1";
        fullnameTab.recipientId = "1";
        fullnameTab.tabLabel    = signer1MagicPattern.Value;
        signer.tabs.fullNameTabs.Add(fullnameTab);

        signer.tabs.textTabs = new List <TextTab>();
        TextTab textTab = new TextTab();

        textTab.documentId  = "1";
        textTab.recipientId = "1";
        textTab.tabLabel    = signer1MagicPattern.Value;
        signer.tabs.textTabs.Add(textTab);

        signer.tabs.listTabs = new List <ListTab>();
        ListTab listTab = new ListTab();

        listTab.documentId  = "1";
        listTab.recipientId = "1";
        listTab.tabLabel    = signer1MagicPattern.Value;
        signer.tabs.listTabs.Add(listTab);

        // Add tabs for the 2nd signer. Define the pattern that assigns the form field to a particular signer
        signer2.tabs = new Tabs();
        signer2.tabs.signHereTabs = new List <SignHereTab>();
        SignHereTab signHereTab2 = new SignHereTab();

        signHereTab2.documentId  = "1";
        signHereTab2.recipientId = "2";
        signHereTab2.tabLabel    = signer2MagicPattern.Value;
        signer2.tabs.signHereTabs.Add(signHereTab2);


        signer2.tabs.dateSignedTabs = new List <DateSignedTab>();
        DateSignedTab dateSignedTab2 = new DateSignedTab();

        dateSignedTab2.documentId  = "1";
        dateSignedTab2.recipientId = "2";
        dateSignedTab2.tabLabel    = signer2MagicPattern.Value;
        signer2.tabs.dateSignedTabs.Add(dateSignedTab2);

        signer2.tabs.fullNameTabs = new List <FullnameTab>();
        FullnameTab fullnameTab2 = new FullnameTab();

        fullnameTab2.documentId  = "1";
        fullnameTab2.recipientId = "2";
        fullnameTab2.tabLabel    = signer2MagicPattern.Value;
        signer2.tabs.fullNameTabs.Add(fullnameTab2);

        // Define a document
        Document document = new Document();

        document.documentId         = "1";
        document.name               = "Sample Form";
        document.transformPdfFields = "true";

        // 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.signers.Add(signer2);

        // Add the inline template to a CompositeTemplate
        CompositeTemplate compositeTemplate1 = new CompositeTemplate();

        compositeTemplate1.inlineTemplates = new List <InlineTemplate>();
        compositeTemplate1.inlineTemplates.Add(inline1);
        compositeTemplate1.document = document;

        // Add compositeTemplate to the envelope
        createEnvelopeRequest.compositeTemplates = new List <CompositeTemplate>();
        createEnvelopeRequest.compositeTemplates.Add(compositeTemplate1);


        string output = JsonConvert.SerializeObject(createEnvelopeRequest);

        // 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/" + ConfigurationManager.AppSettings["API.AccountID"] + "/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 = uploadFile.Value;

        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"))
                {
                    // Now that we have created the envelope, get the recipient token for the first signer
                    String url = Request.Url.AbsoluteUri;
                    RecipientViewRequest recipientViewRequest = new RecipientViewRequest();
                    recipientViewRequest.authenticationMethod = "email";
                    recipientViewRequest.clientUserId         = signer.clientUserId;
                    recipientViewRequest.email = email.Value;
                    if (!Request.Browser.IsMobileDevice)
                    {
                        recipientViewRequest.returnUrl = url.Substring(0, url.LastIndexOf("/")) + "/EmbeddedSigningComplete0.aspx?envelopeID=" + createEnvelopeResponse.envelopeId;
                    }
                    else
                    {
                        recipientViewRequest.returnUrl = url.Substring(0, url.LastIndexOf("/")) + "/ConfirmationPage.aspx?envelopeID=" + createEnvelopeResponse.envelopeId;
                    }
                    recipientViewRequest.userName = firstname.Value + " " + lastname.Value;

                    HttpWebRequest request2 = HttpWebRequest.Create(ConfigurationManager.AppSettings["DocuSignServer"] + "/restapi/v2/accounts/" + ConfigurationManager.AppSettings["API.TemplatesAccountID"] + "/envelopes/" + createEnvelopeResponse.envelopeId + "/views/recipient") as HttpWebRequest;
                    request2.Method = "POST";

                    // Set the authenticationheader
                    request2.Headers["X-DocuSign-Authentication"] = GetSecurityHeader();

                    request2.Accept      = "application/json";
                    request2.ContentType = "application/json";

                    Stream reqStream2 = request2.GetRequestStream();

                    WriteStream(reqStream2, JsonConvert.SerializeObject(recipientViewRequest));
                    HttpWebResponse response2 = request2.GetResponse() as HttpWebResponse;

                    responseBytes = new byte[response2.ContentLength];
                    using (var reader = new System.IO.BinaryReader(response2.GetResponseStream()))
                    {
                        reader.Read(responseBytes, 0, responseBytes.Length);
                    }
                    string response2Text = Encoding.UTF8.GetString(responseBytes);

                    RecipientViewResponse recipientViewResponse = new RecipientViewResponse();
                    recipientViewResponse = JsonConvert.DeserializeObject <RecipientViewResponse>(response2Text);
                    Session.Add("envelopeID", createEnvelopeResponse.envelopeId);

                    // If it's a non-touch aware device, show the signing session in an iFrame
                    if (!Request.Browser.IsMobileDevice)
                    {
                        if (!Request.Browser.Browser.Equals("InternetExplorer") && (!Request.Browser.Browser.Equals("Safari")))
                        {
                            docusignFrame.Visible = true;
                            docusignFrame.Src     = recipientViewResponse.url;
                        }
                        else // Handle IE differently since it does not allow dynamic setting of the iFrame width and height
                        {
                            docusignFrameIE.Visible = true;
                            docusignFrameIE.Src     = recipientViewResponse.url;
                        }
                    }
                    // For touch aware devices, show the signing session in main browser window
                    else
                    {
                        Response.Redirect(recipientViewResponse.url);
                    }
                }
            }
        }
        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_PDFFormFieldsREST));
                    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_PDFFormFieldsREST));
                logger.Info("\n----------------------------------------\n");
                logger.Error("WebRequest Error: " + ex.Message);
                logger.Error(ex.StackTrace);
                Response.Write(ex.Message);
            }
        }
    }