feat: 添加swagger文档,优化枚举操作

This commit is contained in:
橙子
2023-12-30 16:10:30 +08:00
parent a4570b7b2f
commit d51e682110
8 changed files with 79 additions and 19 deletions

View File

@@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Yi.Framework.Bbs.Domain.Shared.Enums;
namespace Yi.Framework.Bbs.Application.Contracts.Dtos.Article
@@ -16,6 +17,8 @@ namespace Yi.Framework.Bbs.Application.Contracts.Dtos.Article
[Required]
public Guid DiscussId { get; set; }
public Guid ArticleParentId { get; set; }= Guid.Empty;
public ArticleImportTypeEnum ImportType { get; set; } = ArticleImportTypeEnum.Defalut;
}
}
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Mapster;
using Microsoft.AspNetCore.Authorization;
@@ -143,7 +144,7 @@ namespace Yi.Framework.Bbs.Application.Services
/// 导入文章
/// </summary>
/// <returns></returns>
public async Task PostImportAsync(ArticleImprotDto input, [FromForm] IFormFileCollection file)
public async Task PostImportAsync([FromQuery] ArticleImprotDto input, [FromForm][Required] IFormFileCollection file)
{
var fileObjs = new List<FileObject>();
if (file.Count > 0)
@@ -172,7 +173,7 @@ namespace Yi.Framework.Bbs.Application.Services
throw new UserFriendlyException("未选择文件");
}
//使用简单工厂根据传入的类型进行判断
await _forumManager.PostImportAsync(input.DiscussId, fileObjs, input.ImportType);
await _forumManager.PostImportAsync(input.DiscussId, input.ArticleParentId, fileObjs, input.ImportType);
}

View File

@@ -1,17 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace Yi.Framework.Bbs.Domain.Shared.Enums
{
[JsonConverter(typeof(StringEnumConverter))]
public enum ArticleImportTypeEnum
{
//默认导入方式
[Description("默认导入方式")]
Defalut,
//vuePresss方式
[Description("vuePresss方式")]
VuePress
}
}

View File

@@ -10,12 +10,13 @@ namespace Yi.Framework.Bbs.Domain.Managers.ArticleImport
{
public abstract class AbstractArticleImport
{
public virtual List<ArticleEntity> Import(Guid discussId, List<FileObject> fileObjs)
public virtual List<ArticleEntity> Import(Guid discussId,Guid articleParentId, List<FileObject> fileObjs)
{
var articles = Convert(fileObjs);
articles.ForEach(article =>
{
article.DiscussId = discussId;
article.ParentId = articleParentId;
});
return articles;
}

View File

@@ -46,8 +46,10 @@ namespace Yi.Framework.Bbs.Domain.Managers.ArticleImport
}
}
lines.ToList().RemoveRange(0, num);
var result = string.Join(Environment.NewLine, lines);
var linesRef = lines.ToList();
linesRef.RemoveRange(0, startIndex+1);
var result = string.Join(Environment.NewLine, linesRef);
f.Content = result;
return f;
});

View File

@@ -48,10 +48,11 @@ namespace Yi.Framework.Bbs.Domain.Managers
/// 导入文章
/// </summary>
/// <param name="discussId"></param>
/// <param name="articleParentId"></param>
/// <param name="fileObjs"></param>
/// <param name="importType"></param>
/// <returns></returns>
public async Task PostImportAsync(Guid discussId, List<FileObject> fileObjs, ArticleImportTypeEnum importType)
public async Task PostImportAsync(Guid discussId,Guid articleParentId, List<FileObject> fileObjs, ArticleImportTypeEnum importType)
{
AbstractArticleImport abstractArticleImport = default;
switch (importType)
@@ -67,9 +68,9 @@ namespace Yi.Framework.Bbs.Domain.Managers
default: abstractArticleImport = new DefaultArticleImport(); break;
}
var articleHandled = abstractArticleImport.Import(discussId, fileObjs);
var articleHandled = abstractArticleImport.Import(discussId, articleParentId, fileObjs);
await _articleRepository.InsertManyAsync(articleHandled);
//await _articleRepository.InsertManyAsync(articleHandled);
}
}