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;
}
}
}