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"); }
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"); }
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); } }
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); } }
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); } }
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); } } }
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); } } }