public void UpdateProgress() { AssociatedDownload.CalculateDownloadSpeed(); CurrentNumberOfBytes = $"{AssociatedDownload.DownloadedSize / 1000} KB"; NumberOfBytesInTotal = $"{AssociatedDownload.FileSize / 1000} KB"; DownloadedPercentage = $"{AssociatedDownload.ProgressPercentage} %"; Speed = $"{AssociatedDownload.DownloadSpeed} KB\\s"; switch (AssociatedDownload.DownloadState) { case Interfaces.DownloadStates.PreStart: State = "Started"; break; case Interfaces.DownloadStates.InProgress: State = "Downloading"; break; case Interfaces.DownloadStates.Paused: State = "Paused"; break; case Interfaces.DownloadStates.Finished: State = "Complete!"; break; case Interfaces.DownloadStates.Canceled: State = "Canceled"; break; default: break; } Task.Run(() => AssociatedView.Dispatcher.Invoke(() => AssociatedView.Items.Refresh())); }
public void RestartDownload() { Task.Run(() => { AssociatedDownload.Restart(); }); }
public void PauseDownload() { Task.Run(() => { AssociatedDownload.Pause(); }); }
public void ResumeDownload() { Task.Run(() => { AssociatedDownload.Resume(); }); }
public void CancelDownload() { Task.Run(() => { AssociatedDownload.Cancel(); FileInfo fileInfo = new FileInfo(AssociatedDownload.DownloadTo); while (IsFileLocked(fileInfo)) { Task.Delay(1000); } if (Directory.Exists(AssociatedDownload.DownloadAt)) { Directory.Delete(AssociatedDownload.DownloadAt, true); } }); }