Пример #1
0
        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;
        }
Пример #2
0
        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;
        }