|
@@ -166,6 +166,21 @@ namespace Hotline.Application.Knowledge
|
|
|
return new PagedDto<KnowledgeApplyHandlePageDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApplyHandlePageDto>>(items));
|
|
|
}
|
|
|
|
|
|
+ //public async Task<Dictionary<string, Stream>> KnowledgeInfoListExportAsync(KnowledgeInfoExportInDto dto, CancellationToken cancellationToken)
|
|
|
+ //{
|
|
|
+ // var streamList = new Dictionary<string, Stream>();
|
|
|
+ // var knowList = await _knowledgeRepository.Queryable()
|
|
|
+ // .Where(m => dto.Ids.Contains(m.Id))
|
|
|
+ // .Select(m => new { m.Title, m.Content })
|
|
|
+ // .ToListAsync(cancellationToken);
|
|
|
+ // foreach (var item in knowList)
|
|
|
+ // {
|
|
|
+ // Stream stream = item.Content.HtmlToStream(dto.FileType);
|
|
|
+ // streamList.Add(item.Title + dto.FileType.GetFileExtension(), stream);
|
|
|
+ // }
|
|
|
+ // return streamList;
|
|
|
+ //}
|
|
|
+
|
|
|
public async Task<Dictionary<string, Stream>> KnowledgeInfoListExportAsync(KnowledgeInfoExportInDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var streamList = new Dictionary<string, Stream>();
|
|
@@ -173,11 +188,23 @@ namespace Hotline.Application.Knowledge
|
|
|
.Where(m => dto.Ids.Contains(m.Id))
|
|
|
.Select(m => new { m.Title, m.Content })
|
|
|
.ToListAsync(cancellationToken);
|
|
|
- foreach (var item in knowList)
|
|
|
+
|
|
|
+ var tasks = knowList.Select(async item =>
|
|
|
+ {
|
|
|
+ var stream = await Task.Run(() => item.Content.HtmlToStream(dto.FileType), cancellationToken);
|
|
|
+ return new KeyValuePair<string, Stream>(
|
|
|
+ item.Title + dto.FileType.GetFileExtension(),
|
|
|
+ stream
|
|
|
+ );
|
|
|
+ });
|
|
|
+
|
|
|
+ var results = await Task.WhenAll(tasks);
|
|
|
+
|
|
|
+ foreach (var kvp in results)
|
|
|
{
|
|
|
- Stream stream = item.Content.HtmlToStream(dto.FileType);
|
|
|
- streamList.Add(item.Title + dto.FileType.GetFileExtension(), stream);
|
|
|
+ streamList.Add(kvp.Key, kvp.Value);
|
|
|
}
|
|
|
+
|
|
|
return streamList;
|
|
|
}
|
|
|
|