public void Download() { try { if (DownloadParams.ToDate < DownloadParams.FromDate) { throw new PSEGetException("Invalid date range."); } DownloadedFiles.Clear(); //this.FailedDownloadFiles.Clear(); DateTime reportDate = DownloadParams.FromDate; do { var downloadParams = (DownloadParams)DownloadParams.Clone(); downloadParams.FileName = downloadParams.FileName.Replace("%dd", String.Format("{0:00}", reportDate.Day)); downloadParams.FileName = downloadParams.FileName.Replace("%mm", String.Format("{0:00}", reportDate.Month)); downloadParams.FileName = downloadParams.FileName.Replace("%yyyy", String.Format("{0:00}", reportDate.Year)); if (reportDate.DayOfWeek == DayOfWeek.Saturday || reportDate.DayOfWeek == DayOfWeek.Sunday) { reportDate = reportDate.AddDays(1); continue; } downloadQueue.Enqueue(downloadParams); reportDate = reportDate.AddDays(1); } while (reportDate <= DownloadParams.ToDate); if (downloadQueue.Count > 0) { if (OnStartDownloadProcess != null) { OnStartDownloadProcess(this, null); } } else { throw new PSEGetException("There were no pse reports found in the dates you specified."); } ProcessQueue(); } catch (Exception e) { OnReportDownloadCompletedEvent(this, new AsyncCompletedEventArgs(e, false, null)); if (downloadQueue.Count == 0) { OnDownloadAllCompletedEvent(this, new EventArgs()); } } }
public void Download() { if (DownloadParams.ToDate < DownloadParams.FromDate) { throw new PSEGetException("Invalid date range."); } DownloadedFiles.Clear(); downloadQueue.Clear(); DateTime reportDate = DownloadParams.FromDate; do { var downloadParams = (DownloadParams)DownloadParams.Clone(); downloadParams.FileName = downloadParams.FileName.Replace("%dd", String.Format("{0:00}", reportDate.Day)); downloadParams.FileName = downloadParams.FileName.Replace("%mm", String.Format("{0:00}", reportDate.Month)); downloadParams.FileName = downloadParams.FileName.Replace("%yyyy", String.Format("{0:00}", reportDate.Year)); if (reportDate.DayOfWeek == DayOfWeek.Saturday || reportDate.DayOfWeek == DayOfWeek.Sunday) { reportDate = reportDate.AddDays(1); continue; } downloadQueue.Enqueue(downloadParams); reportDate = reportDate.AddDays(1); } while (reportDate <= DownloadParams.ToDate); if (downloadQueue.Count > 0) { } else { throw new PSEGetException("Nothing to download"); } ProcessQueue(); }