private void ReportProgress(object sender, ProgressDataModel e) { progressReportBar.Value = e.PercentageCompleted; PrintWebSiteInfo(e.WebsitesDownloaded, txtBlockAsync); if (progressReportBar.Value == 100) { progressReportBar.Visibility = Visibility.Hidden; } }
public async static Task <List <WebSiteDataModel> > RunDownloadSiteAsync(IProgress <ProgressDataModel> progress, CancellationToken cancellationToken) { var list = GetPrepData(); List <WebSiteDataModel> results = new List <WebSiteDataModel>(); ProgressDataModel report = new ProgressDataModel(); foreach (string site in list) { var siteInfo = await DownloadAsync(site); results.Add(siteInfo); cancellationToken.ThrowIfCancellationRequested(); report.WebsitesDownloaded = results; report.PercentageCompleted = (results.Count * 100) / list.Count; progress.Report(report); } return(results); }