public async Task Run(string queueItem) { var channelToDownload = this.serializer.Deserialize <ChannelToDownload>(queueItem); var channelString = await this.httpDownloader.GetStringAsync(channelToDownload.Url); if (string.IsNullOrWhiteSpace(channelString)) { return; } var sha = this.hasher.GetHash(channelString); if (await this.downloadsReader.Exists(channelToDownload.Id, sha)) { return; } var channelDownloadPath = this.blobPathGenerator.CreateChannelDownloadPath(channelToDownload.Id); await this.blobContainer.UploadStringAsync("rss", channelDownloadPath, channelString, IBlobContainer.UploadStringCompression.GZip); var data = new DownloadDto { ChannelId = channelToDownload.Id, Path = channelDownloadPath, SHA = sha }; await this.downloadsWriter.InsertAsync(data); }
private void btnEducation_Click(object sender, EventArgs e) { string msg; if (!CheckParam(out msg)) { MessageBox.Show(msg, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //var hasDownLoadFile = Directory.GetFiles(@"D:\temp\中国教育报合并结果").Select(file => //{ // string str = Path.GetFileNameWithoutExtension(file); // int year = int.Parse(str.Substring(0, 4)); // int month = int.Parse(str.Substring(4, 2)); // int day = int.Parse(str.Substring(6, 2)); // return new DateTime(year, month, day); //})?.ToList(); List <DateTime> hasDownLoadFile = new List <DateTime>(); FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.Description = "请选择文件保存路径"; if (dialog.ShowDialog() == DialogResult.OK) { string foldPath = dialog.SelectedPath; FolderBrowserDialog dialog_pdf = new FolderBrowserDialog(); dialog_pdf.Description = "请选择合并后PDF文件保存路径"; if (dialog_pdf.ShowDialog() == DialogResult.OK) { DownloadDto param = new DownloadDto() { SavePath = foldPath, EndTime = new DateTime(dtpEnd.Value.Year, dtpEnd.Value.Month, dtpEnd.Value.Day), StartTime = new DateTime(dtpStart.Value.Year, dtpStart.Value.Month, dtpStart.Value.Day), IsAutoMergePdf = cbAutoMergePdf.Checked, HasDownLoadFiles = hasDownLoadFile, PdfSavePath = dialog_pdf.SelectedPath }; Thread thread = new Thread(new ParameterizedThreadStart(Education)); thread.Start(param); } } }
public async Task InsertAsync(DownloadDto data) { var query = "INSERT INTO ChannelDownloads (Id, ChannelId, Path, CreatedOn, SHA256) VALUES (@id, @channelId, @path, @createdOn, @SHA)"; try { using (var sqlConnection = new SqlConnection(this.connectionString)) { await sqlConnection.ExecuteAsync(query, data); } } catch (Exception e) { this.log.LogCritical(e.ToString()); throw; } }
public static DownloadResponseBody ToEntity(this DownloadDto downloadDto) { return(downloadDto.MapTo <DownloadDto, DownloadResponseBody>()); }