ArticleController.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using Common;
  3. using Common.Constant;
  4. using Common.Http;
  5. using Esim.Apis.Business;
  6. using Database.Database;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.AspNetCore.Mvc;
  9. namespace RevoSystem.Apis.Controllers
  10. {
  11. [ApiController]
  12. public class ArticleController : Controller
  13. {
  14. private static readonly log4net.ILog log = log4net.LogManager.GetLogger(
  15. typeof(ArticleController)
  16. );
  17. ModelContext dbContext;
  18. IConfiguration configuration;
  19. IArticleBusiness articleBusiness;
  20. public ArticleController(
  21. IConfiguration _configuration,
  22. IArticleBusiness articleBusiness,
  23. ModelContext dbContext
  24. )
  25. {
  26. configuration = _configuration;
  27. this.articleBusiness = articleBusiness;
  28. this.dbContext = dbContext;
  29. }
  30. private string GetParameter(string key)
  31. {
  32. return configuration.GetSection(key).Value ?? "";
  33. }
  34. #region Article Endpoints
  35. /// <summary>
  36. /// Load article categories with pagination
  37. /// POST /apis/article/category
  38. /// </summary>
  39. [HttpPost]
  40. [Route(ApiUrlConstant.ArticleCategoryUrl)]
  41. public async Task<IActionResult> ArticleCategory([FromBody] ArticleCategoryReq request)
  42. {
  43. return await articleBusiness.ArticleCategory(HttpContext.Request, request);
  44. }
  45. /// <summary>
  46. /// Load articles with pagination and filters
  47. /// POST /apis/article/load
  48. /// </summary>
  49. [HttpPost]
  50. [Route(ApiUrlConstant.ArticleLoadUrl)]
  51. public async Task<IActionResult> ArticleLoad([FromBody] ArticleLoadReq request)
  52. {
  53. return await articleBusiness.ArticleLoad(HttpContext.Request, request);
  54. }
  55. /// <summary>
  56. /// Get article detail by ID or slug
  57. /// POST /apis/article/detail
  58. /// </summary>
  59. [HttpPost]
  60. [Route(ApiUrlConstant.ArticleDetailUrl)]
  61. public async Task<IActionResult> ArticleDetail([FromBody] ArticleDetailReq request)
  62. {
  63. return await articleBusiness.ArticleDetail(HttpContext.Request, request);
  64. }
  65. #endregion
  66. }
  67. }