public void IssueZendeskReturnLabel(string no, string docNo, bool closeWindow, Zendesk ticket) { SendService ss = new SendService(); string pdf64String = string.Empty; string amazonBucketURL = string.Empty; try { if (ExistingZendeskTicket) { string message = string.Empty; ZendeskTicket = ticket; if (EmailTo != null) { int index = EmailTo.IndexOf('@'); EmailTo = EmailTo.Insert(index, "+id" + TicketNo); } else { EmailTo = string.Empty; } if (FromEmail == null) { FromEmail = string.Empty; } pdf64String = ss.IssueReturnLabel(no, EmailTo, ExistingZendeskTicket, FromEmail, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL); Session["NoUserInteraction"] = true; ZendeskTicket.UpdateZendeskTicketWithPDFFile(pdf64String, no, amazonBucketURL); message = no + ", Return label is being processed and will be emailed within 1 hour."; Page.ClientScript.RegisterStartupScript(this.GetType(), "issueReturnLableExistingTicket", "alert('" + Json.Encode(message) + "');", true); if (closeWindow) { Page.ClientScript.RegisterStartupScript(this.GetType(), "closeAfterProcessing", "parent.window.close();", true); } } else if (NewZendeskTicket) { string message = string.Empty; pdf64String = ss.IssueReturnLabel(no, EmailTo, ExistingZendeskTicket, FromEmail, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL); Session["NoUserInteraction"] = true; long?newZendeskTicketID = 0; ZendeskTicket = new Zendesk(); newZendeskTicketID = ZendeskTicket.CreateNewZendeskTicketWithPDFFile(pdf64String, no, amazonBucketURL, EmailTo, CustomerName, docNo); message = "New Zendesk Ticket is: " + newZendeskTicketID + @". " + no + ", Return label is being processed and will be emailed within 1 hour."; Page.ClientScript.RegisterStartupScript(this.GetType(), "issueReturnLabelNewTicket", "alert('" + Json.Encode(message) + "');", true); Page.ClientScript.RegisterStartupScript(this.GetType(), "closeErrorAlert", "parent.window.close();", true); } else if (DownloadManually) { string message = string.Empty; pdf64String = ss.IssueReturnLabel(no, string.Empty, ExistingZendeskTicket, string.Empty, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL); Session["NoUserInteraction"] = true; if (pdf64String != string.Empty) // Display only the URL { ZendeskTicket = new Zendesk(); ZendeskTicket.DownloadRMAPDFManually(pdf64String, no); message = no + ", Return label has been successfully downloaded."; Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('" + Json.Encode(message) + "');", true); Page.ClientScript.RegisterStartupScript(this.GetType(), "closeAfterDownload", "parent.window.close();", true); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('The file could not be downloaded.');", true); } } else if (GenerateURL) { string message = string.Empty; string clipboardMessage = string.Empty; pdf64String = ss.IssueReturnLabel(no, string.Empty, ExistingZendeskTicket, string.Empty, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL); Session["NoUserInteraction"] = true; if (amazonBucketURL != string.Empty) // Display only the URL { BitlyAPI bitlyAPI = new BitlyAPI(); string url = bitlyAPI.ShortenURL(amazonBucketURL); message = no + ", Return label URL has been successfully generated."; clipboardMessage = @"Hello, Your return request has been approved. Your Return Merchandise Authorization number is " + no + @" Follow the link below to download your return instructions and shipping label. Or copy and paste the link into your browser. " + url + @" IMPORTANT: Please remove ALL locks and passwords. Any device(s) received locked with your information will be denied, returned at your expense with no refund submitted for processing. Thank You"; Page.ClientScript.RegisterStartupScript(this.GetType(), "clipboardMessage", "CopyToClipboard('" + Json.Encode(clipboardMessage) + "');", true); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "manualGenerateURL", "alert('The URL could not be generated.');", true); } } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('Please select a valid option.');", true); } } catch (Exception ex) { Log.Error(ex.Message, ex); Page.ClientScript.RegisterStartupScript(this.GetType(), "errorAlert", "alert('" + ex.Message.Replace("'", "\"").Replace("\n", "\\n") + "');", true); if (ex.Message.ToLower().Contains("session")) { Page.ClientScript.RegisterStartupScript(this.GetType(), "closeErrorAlert", "parent.window.close();", true); } } }