Example #1
0
        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);
                }
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
 public static DownloadResponseBody ToEntity(this DownloadDto downloadDto)
 {
     return(downloadDto.MapTo <DownloadDto, DownloadResponseBody>());
 }