示例#1
0
        private void GetJobs()
        {
            if (tbAccountName.Text != "" && tbUsername.Text != "" && tbPassword.Text != "")
            {
                tsMessage.Text = "Retrieving Job Status...";
                Refresh();
                hptJob.AccountName = tbAccountName.Text;
                hptJob.Username    = tbUsername.Text;
                hptJob.Password    = tbPassword.Text;

                //hptJob.Create(null);

                var JobResults = hptJob.GetJobs();
                if (!hptJob.ErrorState)
                {
                    dtJobs.Rows.Clear();
                    dgvHPTJobs.DataSource = null;
                    dgvHPTJobs.Columns.Clear();
                    dgvHPTJobs.AutoGenerateColumns = true;
                    foreach (var jobInfo in JobResults)
                    {
                        var Action = ""; // for open or running - no action.
                        if (jobInfo.status == "delivered")
                        {
                            Action = "Download";
                        }
                        else if (jobInfo.status == "quoted")
                        {
                            Action = "Accept/Reject";
                        }

                        if (jobInfo.status == "quoted")
                        {
                            dtJobs.Rows.Add(
                                Action,
                                jobInfo.title,
                                jobInfo.quote.estimatedActivityCount,
                                jobInfo.quote.estimatedDurationHours,
                                jobInfo.quote.estimatedFileSizeMb,
                                jobInfo.status,
                                jobInfo.statusMessage,
                                jobInfo.fileCount,
                                jobInfo.expiresAt,
                                jobInfo.percentComplete,
                                jobInfo.uuid
                                );
                        }
                        else if (jobInfo.status == "delivered")
                        {
                            dtJobs.Rows.Add(
                                Action,
                                jobInfo.title,
                                jobInfo.results.activityCount,
                                null,
                                jobInfo.results.fileSizeMb,
                                jobInfo.status,
                                jobInfo.statusMessage,
                                jobInfo.results.fileCount,
                                jobInfo.expiresAt,
                                jobInfo.percentComplete,
                                jobInfo.uuid
                                );
                        }
                        else if (jobInfo.status == "rejected")
                        {
                            dtJobs.Rows.Add(
                                Action,
                                jobInfo.title,
                                null,
                                null,
                                null,
                                jobInfo.status,
                                jobInfo.statusMessage,
                                null,
                                jobInfo.expiresAt,
                                null,
                                jobInfo.uuid
                                );
                        }
                        else
                        {
                            dtJobs.Rows.Add(
                                Action,
                                jobInfo.title,
                                null,
                                null,
                                null,
                                jobInfo.status,
                                jobInfo.statusMessage,
                                jobInfo.fileCount,
                                jobInfo.expiresAt,
                                jobInfo.percentComplete,
                                jobInfo.uuid
                                );
                        }
                    }
                    dgvHPTJobs.DataSource = dtJobs;

                    // format grid columns
                    foreach (DataGridViewColumn column in dgvHPTJobs.Columns)
                    {
                        column.HeaderText = dtJobs.Columns[column.DataPropertyName].Caption;
                        // format the "Estimated" columns as numbers
                        if (column.HeaderText.StartsWith("Job") ||
                            column.HeaderText.StartsWith("#") ||
                            column.HeaderText.StartsWith("%"))
                        {
                            column.DefaultCellStyle.Format    = "N0"; // numeric, commas
                            column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                        }
                    }

                    dgvHPTJobs.Columns.RemoveAt(0); // Remove text column...

                    dgvHPTJobs.AutoGenerateColumns = false;
                    var dgvLink = new DataGridViewLinkColumn();
                    dgvLink.DataPropertyName          = "Action";
                    dgvLink.UseColumnTextForLinkValue = true;
                    dgvLink.UseColumnTextForLinkValue = false;

                    // dgvLink.Form
                    dgvHPTJobs.Columns.Insert(0, dgvLink);
                    dgvHPTJobs.Columns[0].Width        = 100;
                    dgvHPTJobs.Columns[0].HeaderText   = "Action";
                    dgvHPTJobs.Columns[0].MinimumWidth = 100;
                    // dgvHPTJobs.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                    dgvHPTJobs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
                    tsMessage.Text = "Job Status retrieved";
                }
                else
                {
                    tsMessage.Text = hptJob.ErrorMessage;
                }
            }
        }