async Task <KeyValuePair <bool, List <string> > > SuccefullyDownloaded(string hostName) { var vm = new DownloadViewModel(hostName, _server.DownloadLink); var filePath = await vm.Start(); return(new KeyValuePair <bool, List <string> >(vm.IsError, filePath.Files)); }
private void EnqueueDownload(DownloadViewModel download) { // Cancel and remove downloads with the same file path var existingDownloads = Downloads.Where(d => d.FilePath == download.FilePath).ToArray(); foreach (var existingDownload in existingDownloads) { existingDownload.Cancel(); Downloads.Remove(existingDownload); } // Bind progress manager download.ProgressManager = ProgressManager; download.Start(); Downloads.Insert(0, download); }
// This is async void on purpose because this is supposed to be always ran in background private void EnqueueAndStartDownload(DownloadViewModel download) { // Cancel existing downloads for this file path to prevent writing to the same file foreach (var existingDownload in Downloads.Where(d => d.FilePath == download.FilePath)) { existingDownload.Cancel(); } // Add to list Downloads.Add(download); // Bind progress manager download.ProgressManager = ProgressManager; // Start download download.Start(); }
private void EnqueueAndStartDownload(DownloadViewModel download) { var existingDownloads = Downloads.Where(d => d.FilePath == download.FilePath).ToArray(); foreach (var existingDownload in existingDownloads) { existingDownload.Cancel(); Downloads.Remove(existingDownload); } Downloads.Add(download); download.ProgressManager = ProgressManager; download.Start(); }