private void SetProgressLabel(ProgressLabel label, ParsingProgress progress) { string type = string.Empty; switch (progress.CurrentAction) { case ParsingAction.MediaInfo: case ParsingAction.LocalScan: type = "files"; break; case ParsingAction.IdentifyNewSeries: case ParsingAction.UpdateSeries: case ParsingAction.UpdateBanners: case ParsingAction.UpdateFanart: case ParsingAction.GetNewBanners: case ParsingAction.GetNewFanArt: case ParsingAction.GetNewActors: case ParsingAction.UpdateCommunityRatings: case ParsingAction.UpdateUserFavourites: case ParsingAction.UpdateUserRatings: case ParsingAction.UpdateEpisodeCounts: case ParsingAction.CleanupEpisodes: type = "series"; break; case ParsingAction.IdentifyNewEpisodes: case ParsingAction.UpdateEpisodes: case ParsingAction.UpdateEpisodeThumbNails: type = "episodes"; break; default: type = "items"; break; } if (progress.CurrentItem == -1) // indicates whole step is done { label.Status = ProgressLabelStatus.Finished; label.Progress.Text = string.Format("{0} {1} processed", progress.TotalItems, type); } else { label.Status = ProgressLabelStatus.InProgress; string item = progress.CurrentProgress == null ? string.Empty : ("(" + progress.CurrentProgress + ") "); label.Progress.Text = string.Format("{1} of {2} {3} {0}", item, progress.CurrentItem, progress.TotalItems, type); } }