private async void btnCheckJiraKey_Click(object sender, EventArgs e)
        {
            this.btnCheckJiraKey.Enabled = false;

            string jiraKey = this.txtJiraKey.Text;

            IssueRef issueRef = new IssueRef();

            issueRef.key = jiraKey;

            var issue = await JiraProxy.LoadIssue(issueRef);

            if (issue == null || issue.fields == null)
            {
                return;
            }

            this.txtAssignee.Text   = issue.fields.assignee.name;
            this.txtAssigneeQA.Text = 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);
                    }
                }
            }

            if ("Case".Equals(issue.fields.issueType.name, StringComparison.InvariantCultureIgnoreCase))
            {
                //this.btnCreateSubTask.Enabled = true;
                //this.chkReviewAndRecreateQA.Enabled = true;
                //this.chkReviewAndRecreateDev.Enabled = true;
                //this.chkResearchRootCause.Enabled = true;

                this.chkCodeFix.Enabled = false;
                //this.chkWriteTestCase.Enabled = false;
                //this.chkExecuteTestCase.Enabled = false;
                //this.chkWriteReleaseNotes.Enabled = false;
                //this.chkReviewReleaseNotes.Enabled = false;

                foreach (string key in SubTaskMaper.Keys)
                {
                    // Review and Recreate(QA)
                    if (this.chkReviewAndRecreateQA.Text == key)
                    {
                        //this.chkReviewAndRecreateQA.Enabled = false;
                        this.txtReviewAndRecreateQASubTaskKey.Text = SubTaskMaper[key];

                        var assignee = await JiraProxy.GetAssigneeByJiraKey(SubTaskMaper[key]);

                        this.txtReviewAndRecreateQAAssignee.Text = assignee;
                    }

                    // Review and Recreate(Dev)
                    if (this.chkReviewAndRecreateDev.Text == key)
                    {
                        //this.chkReviewAndRecreateDev.Enabled = false;
                        this.txtReviewAndRecreateDevSubTaskKey.Text = SubTaskMaper[key];

                        var assignee = await JiraProxy.GetAssigneeByJiraKey(SubTaskMaper[key]);

                        this.txtReviewAndRecreateDevAssignee.Text = assignee;
                    }

                    // Research Root Cause
                    if (this.chkResearchRootCause.Text == key)
                    {
                        //this.chkResearchRootCause.Enabled = false;
                        this.txtResearchRootCauseSubTaskKey.Text = SubTaskMaper[key];

                        var assignee = await JiraProxy.GetAssigneeByJiraKey(SubTaskMaper[key]);

                        this.txtResearchRootCauseAssignee.Text = assignee;
                    }
                }
            }


            if ("Bug".Equals(issue.fields.issueType.name, StringComparison.InvariantCultureIgnoreCase))
            {
                this.btnCreateSubTask.Enabled        = true;
                this.chkReviewAndRecreateQA.Enabled  = false;
                this.chkReviewAndRecreateDev.Enabled = false;
                this.chkResearchRootCause.Enabled    = false;

                this.chkCodeFix.Enabled            = true;
                this.chkWriteTestCase.Enabled      = true;
                this.chkExecuteTestCase.Enabled    = true;
                this.chkWriteReleaseNotes.Enabled  = true;
                this.chkReviewReleaseNotes.Enabled = true;

                foreach (string key in SubTaskMaper.Keys)
                {
                    // Code Fix(Dev)
                    if (this.chkCodeFix.Text == key)
                    {
                        this.chkCodeFix.Enabled        = false;
                        this.txtCodeFixSubTaskKey.Text = SubTaskMaper[key];
                    }

                    // Write Test Case(QA)
                    if (this.chkWriteTestCase.Text == key)
                    {
                        this.chkWriteTestCase.Enabled        = false;
                        this.txtWriteTestCaseSubTaskKey.Text = SubTaskMaper[key];
                    }

                    // Execute Test Case(QA)
                    if (this.chkExecuteTestCase.Text == key)
                    {
                        this.chkExecuteTestCase.Enabled        = false;
                        this.txtExecuteTestCaseSubTaskKey.Text = SubTaskMaper[key];
                    }

                    // Write Release Notes(Dev)
                    if (this.chkWriteReleaseNotes.Text == key)
                    {
                        this.chkWriteReleaseNotes.Enabled        = false;
                        this.txtWriteReleaseNotesSubTaskKey.Text = SubTaskMaper[key];
                    }

                    // Review Release Notes(QA)
                    if (this.chkReviewReleaseNotes.Text == key)
                    {
                        this.chkReviewReleaseNotes.Enabled        = false;
                        this.txtReviewReleaseNotesSubTaskKey.Text = SubTaskMaper[key];
                    }
                }
            }

            this.btnCreateSubTask.Enabled = true;
            this.btnCheckJiraKey.Enabled  = true;
        }