private async void CreateSubTask(SubTaskSuite SubTaskSuite, SubTaskOption SubTaskOption) { if ("Case".Equals(SubTaskSuite.IssueType, StringComparison.InvariantCultureIgnoreCase) && !String.IsNullOrEmpty(SubTaskSuite.SFID)) { if (this.chkBypassStatusValidation.Checked == false) { if ("Resolved".Equals(SubTaskSuite.Status, StringComparison.InvariantCultureIgnoreCase) || "Closed".Equals(SubTaskSuite.Status, StringComparison.InvariantCultureIgnoreCase)) { return; } } if (SubTaskOption.ReviewAndRecreateByQA == true && String.IsNullOrEmpty(SubTaskSuite.ReviewAndRecreateByQA)) { createSubTask(SubTaskSuite.JiraKey, "Review and Recreate(QA)", SubTaskTemplates["Review and Recreate(QA)"]); } if (SubTaskOption.ReviewAndRecreateByDev == true && String.IsNullOrEmpty(SubTaskSuite.ReviewAndRecreateByDev)) { createSubTask(SubTaskSuite.JiraKey, "Review and Recreate(Dev)", SubTaskTemplates["Review and Recreate(Dev)"]); } if (SubTaskOption.ResearchRootCauseByDev == true && String.IsNullOrEmpty(SubTaskSuite.ResearchRootCauseByDev)) { createSubTask(SubTaskSuite.JiraKey, "Research Root Cause", SubTaskTemplates["Research Root Cause"]); } } if ("Bug".Equals(SubTaskSuite.IssueType, StringComparison.InvariantCultureIgnoreCase)) { if (this.chkBypassStatusValidation.Checked == false) { if ("Closed".Equals(SubTaskSuite.Status, StringComparison.InvariantCultureIgnoreCase)) { return; } } if (SubTaskOption.CodeFixByDev == true && String.IsNullOrEmpty(SubTaskSuite.CodeFixByDev)) { createSubTask(SubTaskSuite.JiraKey, "Code Fix(Dev)", SubTaskTemplates["Code Fix(Dev)"]); } if (SubTaskOption.WriteTestCaseByQA == true && String.IsNullOrEmpty(SubTaskSuite.WriteTestCaseByQA) && !String.IsNullOrEmpty(SubTaskSuite.SFID)) { createSubTask(SubTaskSuite.JiraKey, "Write Test Case(QA)", SubTaskTemplates["Write Test Case(QA)"]); } if (SubTaskOption.ExecuteTestCaseByQA == true && String.IsNullOrEmpty(SubTaskSuite.ExecuteTestCaseByQA)) { createSubTask(SubTaskSuite.JiraKey, "Execute Test Case(QA)", SubTaskTemplates["Execute Test Case(QA)"]); } if (SubTaskOption.WriteReleaseNotesByDev == true && String.IsNullOrEmpty(SubTaskSuite.WriteReleaseNotesByDev) && !String.IsNullOrEmpty(SubTaskSuite.SFID)) { createSubTask(SubTaskSuite.JiraKey, "Write Release Notes(Dev)", SubTaskTemplates["Write Release Notes(Dev)"]); } if (SubTaskOption.ReviewReleaseNotesByQA == true && String.IsNullOrEmpty(SubTaskSuite.ReviewReleaseNotesByQA) && !String.IsNullOrEmpty(SubTaskSuite.SFID)) { createSubTask(SubTaskSuite.JiraKey, "Review Release Notes(QA)", SubTaskTemplates["Review Release Notes(QA)"]); } } }
private async Task <List <SubTaskSuite> > GetSubTaskSuiteByCaseID(List <string> caseIDs) { List <SubTaskSuite> subTaskSuites = new List <SubTaskSuite>(); var issueList = new List <Issue>(); int N = 1; for (int i = 0; i < caseIDs.Count;) { List <string> caseIdListTemp = new List <string>(); for (; i < N * 50 && i < caseIDs.Count; i++) { caseIdListTemp.Add(caseIDs[i]); } N = N + 1; var GetIssueList = JiraProxy.GetIssueList(caseIdListTemp); var issueListTmp = await GetIssueList; issueList.AddRange(issueListTmp); } foreach (var issue in issueList) { SubTaskSuite subTaskSuite = new SubTaskSuite(); // SF ID subTaskSuite.SFID = issue.fields.customfield_10600; // Jira Key subTaskSuite.JiraKey = issue.key; // Issue Type subTaskSuite.IssueType = issue.fields.issueType.name; // Status subTaskSuite.Status = issue.fields.status.name; // Assignee subTaskSuite.Assignee = (issue.fields.assignee == null ? "" : issue.fields.assignee.displayName); subTaskSuite.AssigneeEmail = (issue.fields.assignee == null ? "" : issue.fields.assignee.name); // AssigneeQA subTaskSuite.AssigneeQA = (issue.fields.customfield_11702 == null ? "" : issue.fields.customfield_11702.displayName); subTaskSuite.AssigneeQAEmail = (issue.fields.customfield_11702 == null ? "" : issue.fields.customfield_11702.name); Dictionary <string, string> SubTaskMaper = new Dictionary <string, string>(); foreach (var subTask in issue.fields.subtasks) { if (subTask != null && subTask.fields != null && subTask.fields.issuetype.subtask == true) { if (!SubTaskMaper.ContainsKey(subTask.fields.summary)) { SubTaskMaper.Add(subTask.fields.summary, subTask.key); } } } // Review and Recreate(QA) if (SubTaskMaper.ContainsKey("Review and Recreate(QA)")) { subTaskSuite.ReviewAndRecreateByQA = SubTaskMaper["Review and Recreate(QA)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.ReviewAndRecreateByQA); subTaskSuite.Assignee1 = subTask.Assignee; subTaskSuite.Status1 = subTask.Status; } // Review and Recreate(Dev) if (SubTaskMaper.ContainsKey("Review and Recreate(Dev)")) { subTaskSuite.ReviewAndRecreateByDev = SubTaskMaper["Review and Recreate(Dev)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.ReviewAndRecreateByDev); subTaskSuite.Assignee2 = subTask.Assignee; subTaskSuite.Status2 = subTask.Status; } // Research Root Cause if (SubTaskMaper.ContainsKey("Research Root Cause")) { subTaskSuite.ResearchRootCauseByDev = SubTaskMaper["Research Root Cause"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.ReviewAndRecreateByDev); subTaskSuite.Assignee3 = subTask.Assignee; subTaskSuite.Status3 = subTask.Status; } // Code Fix(Dev) if (SubTaskMaper.ContainsKey("Code Fix(Dev)")) { subTaskSuite.CodeFixByDev = SubTaskMaper["Code Fix(Dev)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.CodeFixByDev); subTaskSuite.Assignee4 = subTask.Assignee; subTaskSuite.Status4 = subTask.Status; } // Write Test Case(QA) if (SubTaskMaper.ContainsKey("Write Test Case(QA)")) { subTaskSuite.WriteTestCaseByQA = SubTaskMaper["Write Test Case(QA)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.WriteTestCaseByQA); subTaskSuite.Assignee5 = subTask.Assignee; subTaskSuite.Status5 = subTask.Status; } // Execute Test Case(QA) if (SubTaskMaper.ContainsKey("Execute Test Case(QA)")) { subTaskSuite.WriteTestCaseByQA = SubTaskMaper["Execute Test Case(QA)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.WriteTestCaseByQA); subTaskSuite.Assignee6 = subTask.Assignee; subTaskSuite.Status6 = subTask.Status; } // Write Release Notes(Dev) if (SubTaskMaper.ContainsKey("Write Release Notes(Dev)")) { subTaskSuite.WriteTestCaseByQA = SubTaskMaper["Write Release Notes(Dev)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.WriteTestCaseByQA); subTaskSuite.Assignee7 = subTask.Assignee; subTaskSuite.Status7 = subTask.Status; } // Review Release Notes(QA) if (SubTaskMaper.ContainsKey("Review Release Notes(QA)")) { subTaskSuite.ReviewReleaseNotesByQA = SubTaskMaper["Review Release Notes(QA)"]; var subTask = await GetAssigneeAndStatus(subTaskSuite.ReviewReleaseNotesByQA); subTaskSuite.Assignee8 = subTask.Assignee; subTaskSuite.Status8 = subTask.Status; } subTaskSuites.Add(subTaskSuite); } return(subTaskSuites); }
private async void btnCreateSubTask_Click(object sender, EventArgs e) { this.btnCreateSubTask.Enabled = false; // Step 1, Collect the sub task option SubTaskOption SubTaskOption = new SubTaskOption(); SubTaskOption.ReviewAndRecreateByQA = this.chkReviewAndRecreateQA.Checked; SubTaskOption.ReviewAndRecreateByDev = this.chkReviewAndRecreateDev.Checked; SubTaskOption.ResearchRootCauseByDev = this.chkResearchRootCause.Checked; SubTaskOption.CodeFixByDev = this.chkCodeFix.Checked; SubTaskOption.WriteTestCaseByQA = this.chkWriteTestCase.Checked; SubTaskOption.ExecuteTestCaseByQA = this.chkExecuteTestCase.Checked; SubTaskOption.WriteReleaseNotesByDev = this.chkWriteReleaseNotes.Checked; SubTaskOption.ReviewReleaseNotesByQA = this.chkReviewReleaseNotes.Checked; if (!SubTaskOption.ReviewAndRecreateByQA && !SubTaskOption.ReviewAndRecreateByDev && !SubTaskOption.ResearchRootCauseByDev && !SubTaskOption.CodeFixByDev && !SubTaskOption.WriteTestCaseByQA && !SubTaskOption.ExecuteTestCaseByQA && !SubTaskOption.WriteReleaseNotesByDev && !SubTaskOption.ReviewReleaseNotesByQA) { MessageBox.Show("Please select at least one sub task option!"); this.btnCreateSubTask.Enabled = true; return; } DataTable dataTable = this.dgvCaseList.DataSource as DataTable; if (dataTable != null) { /* * bool Checked = false; * string SFID = ""; * string JiraKey = ""; * string IssueType = ""; * string Status = ""; * string Assignee = ""; * string AssigneeEmail = ""; * string AssigneeQA = ""; * string AssigneeQAEmail = ""; * string ReviewAndRecreateByQA = ""; * string Assignee1 = ""; * string Status1 = ""; * string ReviewAndRecreateByDev = ""; * string Assignee2 = ""; * string Status2 = ""; * string ResearchRootCauseByDev = ""; * string Assignee3 = ""; * string Status3 = ""; * string CodeFixByDev = ""; * string Assignee4 = ""; * string Status4 = ""; * string WriteTestCaseByQA = ""; * string Assignee5 = ""; * string Status5 = ""; * string ExecuteTestCaseByQA = ""; * string Assignee6 = ""; * string Status6 = ""; * string WriteReleaseNotesByDev = ""; * string Assignee7 = ""; * string Status7 = ""; * string ReviewReleaseNotesByQA = ""; * string Assignee8 = ""; * string Status8 = ""; * */ bool checkedFlag = false; int rowCount = dataTable.Rows.Count; for (int i = 0; i < rowCount; i++) { DataRow row = dataTable.Rows[i]; SubTaskSuite SubTaskSuite = new SubTaskSuite(); // row["ID"] as int; SubTaskSuite.SFID = row["SFID"] as string; SubTaskSuite.JiraKey = row["JiraKey"] as string; SubTaskSuite.IssueType = row["IssueType"] as string; SubTaskSuite.Status = row["Status"] as string; SubTaskSuite.Assignee = row["Assignee"] as string; SubTaskSuite.AssigneeEmail = row["AssigneeEmail"] as string; SubTaskSuite.AssigneeQA = row["AssigneeQA"] as string; SubTaskSuite.AssigneeQAEmail = row["AssigneeQAEmail"] as string; SubTaskSuite.ReviewAndRecreateByQA = row["ReviewAndRecreateByQA"] as string; SubTaskSuite.Assignee1 = row["Assignee1"] as string; SubTaskSuite.Status1 = row["Status1"] as string; SubTaskSuite.ReviewAndRecreateByDev = row["ReviewAndRecreateByDev"] as string; SubTaskSuite.Assignee2 = row["Assignee2"] as string; SubTaskSuite.Status2 = row["Status2"] as string; SubTaskSuite.ResearchRootCauseByDev = row["ResearchRootCauseByDev"] as string; SubTaskSuite.Assignee3 = row["Assignee3"] as string; SubTaskSuite.Status3 = row["Status2"] as string; SubTaskSuite.CodeFixByDev = row["CodeFixByDev"] as string; SubTaskSuite.Assignee4 = row["Assignee4"] as string; SubTaskSuite.Status4 = row["Status4"] as string; SubTaskSuite.WriteTestCaseByQA = row["WriteTestCaseByQA"] as string; SubTaskSuite.Assignee5 = row["Assignee5"] as string; SubTaskSuite.Status5 = row["Status5"] as string; SubTaskSuite.ExecuteTestCaseByQA = row["ExecuteTestCaseByQA"] as string; SubTaskSuite.Assignee6 = row["Assignee6"] as string; SubTaskSuite.Status6 = row["Status6"] as string; SubTaskSuite.WriteReleaseNotesByDev = row["WriteReleaseNotesByDev"] as string; SubTaskSuite.Assignee7 = row["Assignee7"] as string; SubTaskSuite.Status7 = row["Status7"] as string; SubTaskSuite.ReviewReleaseNotesByQA = row["ReviewReleaseNotesByQA"] as string; SubTaskSuite.Assignee8 = row["Assignee8"] as string; SubTaskSuite.Status8 = row["Status8"] as string; checkedFlag = bool.Parse(row["Checked"].ToString()); if (checkedFlag) { CreateSubTask(SubTaskSuite, SubTaskOption); } } } this.btnCreateSubTask.Enabled = true; }