Example #1
0
        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)"]);
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }