private void btnMerge_Click(object sender, EventArgs e) { this.btnSync.Enabled = false; this.btnMerge.Enabled = false; DataTable dataTable = this.dgdMergeFileList.DataSource as DataTable; DataView dataTableView = dataTable.DefaultView; dataTableView.Sort = "CaseNumber ASC, UploadDate ASC"; dataTable = dataTableView.ToTable(); if (dataTable != null) { int rowCount = dataTable.Rows.Count; bool IsMerged = false; string caseId = ""; string caseNumber = ""; string caseAttachmentId = ""; string caseFileName = ""; string caseAttchmentId = ""; string caseAttachmentType = ""; string uploadedBy = ""; string uploadDate = ""; string jiraId = ""; string jiraKey = ""; string currentCaseNumber = ""; string commentMoveFileList = string.Empty; IssueRef issueRef = new IssueRef(); for (int i = 0; i < rowCount; i++) { DataRow row = dataTable.Rows[i]; IsMerged = bool.Parse(row["IsMerged"].ToString()); caseId = row["CaseId"] as string; caseNumber = row["CaseNumber"] as string; caseAttachmentId = row["CaseAttchmentId"] as string; caseFileName = row["CaseFileName"] as string; caseAttchmentId = row["CaseAttchmentId"] as string; caseAttachmentType = row["CaseAttachmentType"] as string; uploadDate = row["UploadDate"] as string; uploadedBy = row["UploadedBy"] as string; jiraId = row["JiraId"] as string; jiraKey = row["JiraKey"] as string; if (!String.IsNullOrEmpty(commentMoveFileList) && currentCaseNumber != caseNumber) { // Upload jira comment commentMoveFileList = "Copy some attachments from salesforce \n------------------------------------------------------------------------\n" + commentMoveFileList; JiraProxy.CreateComment(issueRef, commentMoveFileList); commentMoveFileList = string.Empty; } issueRef.id = jiraId; issueRef.key = jiraKey; if (IsMerged) { byte[] fileStream = SalesforceProxy.GetCaseAttachmentById(caseAttachmentId); JiraProxy.UploadAttachment(issueRef, caseFileName, fileStream); commentMoveFileList += "The file : <<" + caseFileName + ">> uploaded by <<" + uploadedBy + ">> on " + uploadDate + "\n"; } currentCaseNumber = caseNumber; } if (!String.IsNullOrEmpty(commentMoveFileList)) { // Upload jira comment commentMoveFileList = "Copy some attachments from salesforce \n------------------------------------------------------------------------\n" + commentMoveFileList; JiraProxy.CreateComment(issueRef, commentMoveFileList); commentMoveFileList = string.Empty; } } this.btnSync.Enabled = true; this.btnMerge.Enabled = false; }
private async void btnRequest_Click(object sender, EventArgs e) { // this.btnRequest.Enabled = false; string sfid = this.txtSFID.Text; string engsuppKey = this.txtEngsuppID.Text; string currentVersion = this.txtVersion.Text; string product = this.txtProduct.Text; string contact = this.txtCaseOwner.Text; string priority = this.txtPriority.Text; string siteUr = this.txtSiteUrl.Text; string issueSubject = this.txtIssueSubject.Text; string customerInfo = this.txtCustomerInfo.Text; string dbType = this.txtDBType.Text; string dbIP = this.txtDBServerIP.Text; string dbPort = this.txtDBServerPort.Text; string dbInstance = this.txtDBInstance.Text; string dbUserName = this.txtDBUser.Text; string dbUserPassword = this.txtDBPassword.Text; string dbVersion = this.txtDBVersion.Text; string dbRelatedCase = this.txtRelatedCase.Text; string enviroment = ""; string reviewer = this.txtReviewer.Text; if (this.txtSiteUrl.Text.Trim().IndexOf(".accela.com") == -1) { MessageBox.Show("Please specify the client's site url where this case could be recreated.\n For example: https://av.supp3.accela.com/ "); this.btnRequest.Enabled = true; return; } if (chbAccelaHostedFlag.Checked) { if (this.chbProductionFlag.Checked) { enviroment += "<<Production>>"; } if (this.chbSupportFlag.Checked) { enviroment += "<<Support>>"; } if (this.chbTestFlag.Checked) { enviroment += "<<Test>>"; } if (this.chbJetspeed.Checked) { enviroment += "<<Jetspeed>>"; } if (String.IsNullOrEmpty(enviroment)) { MessageBox.Show("Please specify which database enviroment you would request. For example, production, support or test or jetspped"); this.btnRequest.Enabled = true; return; } } else { MessageBox.Show("Please double check if this customer is Accela hosted. If yes, please tick the checkbox beside Accela Hosted field."); this.btnRequest.Enabled = true; return; } string summary = "Request one fresh database dump for [" + customerInfo + "] - " + sfid; string description1 = @" Hi [[email protected]], Please kindly help to get one fresh database dump pings to {0} for <<{1}>> which is Accela hosted, because we could not reproduce the problem on our local site. The problem might exists on their latest {2} enviroment. Custom Info: --------------------------------------------------------- Salesforce ID: {3} ENGSUPP Key: {4} Customer: {5} Current Version: {6} Product: {7} Contact:{8} Priority: {9} Issue Subject: {10} --------------------------------------------------------- After the fresh database dump is ready, please put it under Accela ftp server. The path should like ftp://ftp.accela.com/BIN/MISSIONSKY/XXXXX-XXXXX, and then re-assign this jira ticket to [~{11}] who will download it in Missionsky. Any further question, please let us know. Thanks you very much! CC [[email protected]] [[email protected]] [[email protected]] [~{11}]"; description1 = String.Format(description1, siteUr, customerInfo, enviroment, sfid, engsuppKey, customerInfo, currentVersion, product, contact, priority, issueSubject, reviewer ); IssueFields fields = new IssueFields(); fields.summary = summary; fields.description = description1; var GetDBTaskBySFID = JiraProxy.GetDatabaseTaskByCaseID("DATABASE", "Task", sfid); var GetDatabaseTaskByCustomerID = JiraProxy.GetDatabaseTaskByCustomerID("DATABASE", "Task", customerInfo); var taskInfoByCaseId = await GetDBTaskBySFID; var taskInfoByCustomerId = await GetDatabaseTaskByCustomerID; if (taskInfoByCaseId != null || taskInfoByCustomerId != null) { var taskInfo = taskInfoByCaseId; if (taskInfo == null) { taskInfo = taskInfoByCustomerId; } taskInfo.fields = fields; JiraProxy.UpdateDatabaseTask(taskInfo); this.txtDatabaseID.Text = taskInfo.key; MessageBox.Show("The database request ticket already exists, please refer to " + taskInfo.key); showCaseComment(engsuppKey, taskInfo.key); } else { var issue = await JiraProxy.CreateDatabaseTask(fields); this.txtDatabaseID.Text = issue.key; // 2 - Critical // 7 - High // 6 - Medium // 8 - Low issue.fields.Priority = new IssuePriority(); issue.fields.Priority.name = priority; JiraProxy.UpdateDatabaseTask(issue); showCaseComment(engsuppKey, issue.key); IssueRef engIssue = new IssueRef(); engIssue.key = engsuppKey; engIssue.id = engsuppKey; JiraProxy.CreateComment(engIssue, String.Format("One jira ticket is already submitted to Accela DBA for the most recent database dump, because the reported issue might be data-related based on the research. The ticket key is {0}. Thank you for your patience", issue.key)); } this.btnRequest.Enabled = true; }