DeploymentTracker.App.Windows.PackageDeployment.BackgroundWorker_ProgressChanged C# (CSharp) Method

BackgroundWorker_ProgressChanged() private method

Handles the ProgressChanged event of the backgroundWorker control.
private BackgroundWorker_ProgressChanged ( object sender, ProgressChangedEventArgs e ) : void
sender object The source of the event.
e ProgressChangedEventArgs The instance containing the event data.
return void
        private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (e.UserState != null)
            {
                if (e.UserState.ToString() == "Fail")
                {
                    this.progressBar.Value = this.progressBar.Maximum;
                    this.toolStripStatusLabel.Text = "Process failed.";
                    for (int i = e.ProgressPercentage; i <= (e.ProgressPercentage >= 20 ? 25 : 15); i++)
                    {
                        this.tvCheckList.Nodes.Find("15", true).FirstOrDefault().ImageIndex = 1;
                        this.tvCheckList.Nodes.Find(i.ToString(), true).FirstOrDefault().ImageIndex = 3;
                    }

                    return;
                }

                this.toolStripStatusLabel.Text = e.UserState.ToString();
            }

            this.progressBar.PerformStep();
            if (this.tvCheckList.Nodes.Find(e.ProgressPercentage >= 25 ? "25" : e.ProgressPercentage.ToString(CultureInfo.InvariantCulture), true).FirstOrDefault().ImageIndex != 3)
            {
                this.tvCheckList.Nodes.Find(e.ProgressPercentage >= 25 ? "25" : e.ProgressPercentage.ToString(CultureInfo.InvariantCulture), true).
                    FirstOrDefault().ImageIndex = 0;
            }

            int nodenum = e.ProgressPercentage - 1;

            // These are exceptions
            nodenum = e.ProgressPercentage == 20 ? 15 : nodenum;
            nodenum = e.ProgressPercentage == 10 ? 10 : nodenum;
            TreeNode node = this.tvCheckList.Nodes.Find(nodenum.ToString(CultureInfo.InvariantCulture), true).FirstOrDefault();
            if (node != null && node.ImageIndex != 3)
            {
                node.ImageIndex = 1;
            }

            // Need this dirty tweak to show the UI that build never happened
            if (this.tabControl1.SelectedTab.Name.Equals("tabLocalDeployment"))
            {
                this.ResetTreeViewNodes(this.tvCheckList.Nodes["10"]);
                if (e.ProgressPercentage >= 25)
                {
                    this.progressBar.Value = this.progressBar.Maximum;
                }
            }
        }