//创建后台下载任务 public async void CreateBackDownload(string fileName, Uri uri) { var folder = await GetDownloadFolder(); fileName = _utilityHelper.ReplaceInvalidCharactorsInFileName(fileName); var file = await _storageService.CreaterFile(folder, fileName); var operation = _downloader.CreateDownload(uri, file); try { await operation.StartAsync(); } catch { } var thumb = await _storageService.GetThumbBytes(file); DownloadedInfo info = new DownloadedInfo() { DownloadedTime = DateTime.Now, FileName = fileName, FilePath = file.Path, Size = operation.Progress.TotalBytesToReceive, Thumb = thumb }; StoreDownloadedInfo(info); _notificationService.ShowDownloadFinishedToast(info.FileName); }
//将正在下载信息转换为下载完成信息 public async Task <DownloadedInfo> FinishedDownload(DownloadInfo downloadInfo) { DownloadedInfo downloadedInfo = new DownloadedInfo(); downloadedInfo.DownloadedTime = DateTime.Now; downloadedInfo.FileName = downloadInfo.FileName; downloadedInfo.FilePath = downloadInfo.DownloadOperation.ResultFile.Path; downloadedInfo.Size = downloadInfo.TotalToReceive; var file = downloadInfo.DownloadOperation.ResultFile; downloadedInfo.Thumb = await _storageService.GetThumbBytes(file); return(downloadedInfo); }
//存储下载完成的信息 public async void StoreDownloadedInfo(DownloadedInfo downloadedInfo) { _dbService.DownloadDbContext.DownloadedInfos.Add(downloadedInfo); await _dbService.DownloadDbContext.SaveChangesAsync(); }