using Hncore.Infrastructure.EntitiesExtension; using Hncore.Infrastructure.Extension; using Hncore.Infrastructure.WebApi; using Hncore.Pass.Vpn.Domain; using Hncore.Pass.Vpn.Service; using Microsoft.AspNetCore.Mvc; using System; using System.Linq.Expressions; using System.Threading.Tasks; namespace Hncore.Pass.Vpn.Controllers { [ApiVersion("1.0")] [Route("api/course/v{version:apiVersion}/article/[action]")] public class ArticleController : HncoreControllerBase { private ArticleService m_ArticleService; public ArticleController(ArticleService _ArticleService) { m_ArticleService = _ArticleService; } /// /// 添加 /// /// /// [HttpPost] public async Task Post([FromBody]ArticleEntity request) { request.TenantId = this.Request.GetManageUserInfo().TenantId; await m_ArticleService.Add(request); return Success(); } /// /// 修改 /// /// /// [HttpPost] public async Task Put([FromBody]ArticleEntity request) { await m_ArticleService.Update(request); return Success(); } /// /// 删除 /// /// /// [HttpPost] public async Task Delete([FromQuery]int id) { var flag = await m_ArticleService.DeleteById(id); if (flag) return Success(); else return Error("删除失败"); } /// /// 详情 /// /// /// [HttpGet] public async Task Get([FromQuery]int id) { var data = await m_ArticleService.GetById(id); return Success(data); } /// /// 分页查询 /// /// /// [HttpGet] public async Task Page([FromQuery]PageRequestBase request) { Expression> expr = m => 1 == 1; if (request.KeyWord.Has()) { expr = expr.And(m => m.Title.Contains(request.KeyWord) || m.SubTitle.Contains(request.KeyWord) || m.Keyword.Contains(request.KeyWord)); } var ret = await m_ArticleService.Page(request.PageIndex, request.PageSize, expr,true); var data = ret.ToApiResult(); return data; } [HttpPost] public async Task Audit([FromQuery] int id) { var entity = await m_ArticleService.GetById(id); entity.Publish = entity.Publish == 1 ? 0 : 1; await m_ArticleService.Update(entity); return Success(entity.Publish); } } }