PracticeController.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. using Amazon.Runtime.Internal;
  2. using Exam.Share;
  3. using Exam.Share.ViewResponses.Practices;
  4. using Hotline.Application.Exam.Constants.ApiRoutes;
  5. using Hotline.Application.Exam.Interface.Practices;
  6. using Hotline.Share.Dtos.Practices;
  7. using Hotline.Share.Requests.Exam;
  8. using Hotline.Share.Requests.TestPaper;
  9. using Hotline.Share.ViewResponses.Exam;
  10. using Hotline.Share.ViewResponses.Practices;
  11. using Microsoft.AspNetCore.Mvc;
  12. namespace Hotline.Api.Controllers.Exam
  13. {
  14. public class PracticeController : BaseController
  15. {
  16. private readonly IPracticeService _practiceService;
  17. public PracticeController(IPracticeService practiceService)
  18. {
  19. this._practiceService = practiceService;
  20. }
  21. /// <summary>
  22. /// 获取自我练习试题类型和Id
  23. /// </summary>
  24. /// <param name="examQuestionRequest"></param>
  25. /// <returns></returns>
  26. [HttpGet(PracticeApiRoute.GetPracticeQuestionViewResponses)]
  27. public async Task<List<PracticeQuestionViewResponse>> GetPracticeQuestionViewResponses([FromQuery] PracticeQuestionGroupRequest practiceQuestionGroupRequest)
  28. {
  29. return await _practiceService.GetPracticeQuestionViewResponses(practiceQuestionGroupRequest);
  30. }
  31. /// <summary>
  32. /// 获取练习试题
  33. /// </summary>
  34. /// <param name="practiceQuestionRequest"></param>
  35. /// <returns></returns>
  36. [HttpGet(PracticeApiRoute.GetPracticeQuestionDto)]
  37. public async Task<PracticeQuestionDto> GetPracticeQuestion([FromQuery] PracticeQuestionRequest practiceQuestionRequest)
  38. {
  39. return await _practiceService.GetPracticeQuestion(practiceQuestionRequest);
  40. }
  41. /// <summary>
  42. /// 练习
  43. /// </summary>
  44. /// <param name="submitPracticeDto"></param>
  45. /// <param name="cancellationToken"></param>
  46. /// <returns></returns>
  47. [HttpPost(PracticeApiRoute.Practice)]
  48. public async Task<PracticeQuestionDto> Practice([FromBody]SubmitPracticeDto submitPracticeDto)
  49. {
  50. return await _practiceService.Practice(submitPracticeDto,HttpContext.RequestAborted);
  51. }
  52. /// <summary>
  53. /// 获取练习记录
  54. /// </summary>
  55. /// <param name="practicePagedRequest"></param>
  56. /// <returns></returns>
  57. [HttpPost(PracticeApiRoute.GetPagedList)]
  58. public async Task<PracticePageViewResponse> GetPagedList([FromBody]PracticePagedRequest practicePagedRequest)
  59. {
  60. var practicePageViewResponse = await _practiceService.GetPagedListAsync(practicePagedRequest);
  61. return practicePageViewResponse as PracticePageViewResponse;
  62. }
  63. /// <summary>
  64. /// 完成练习记录
  65. /// </summary>
  66. /// <returns></returns>
  67. [HttpPost(PracticeApiRoute.Complete)]
  68. public async Task Complete([FromBody]CompletePracticeRecordDto completePracticeRecordDto)
  69. {
  70. await _practiceService.Complete(completePracticeRecordDto, HttpContext.RequestAborted);
  71. }
  72. /// <summary>
  73. /// 获取查看练习习题
  74. /// </summary>
  75. /// <param name="practiceQuestionGroupRequest"></param>
  76. /// <returns></returns>
  77. [HttpGet(PracticeApiRoute.GetViewPracticeQuestions)]
  78. public async Task<List<PracticeQuestionViewResponse>> GetViewPracticeQuestions([FromQuery] PracticeQuestionGroupRequest practiceQuestionGroupRequest)
  79. {
  80. return await _practiceService.GetViewPracticeQuestions(practiceQuestionGroupRequest);
  81. }
  82. /// <summary>
  83. /// 获取查看练习习题
  84. /// </summary>
  85. /// <param name="practiceQuestionGroupRequest"></param>
  86. /// <returns></returns>
  87. [HttpGet(PracticeApiRoute.View)]
  88. public async Task<ViewPracticeQuestionDto> View([FromQuery] PracticeQuestionRequest practiceQuestionRequest)
  89. {
  90. return await _practiceService.ViewPracticeQuestion(practiceQuestionRequest);
  91. }
  92. /// <summary>
  93. /// 新增练习
  94. /// </summary>
  95. /// <param name="addPracticeDto"></param>
  96. /// <returns></returns>
  97. [HttpPost(PracticeApiRoute.Add)]
  98. public async Task<string> Add([FromBody] AddPracticeDto addPracticeDto)
  99. {
  100. return await _practiceService.AddAsync(addPracticeDto,HttpContext.RequestAborted);
  101. }
  102. /// <summary>
  103. /// 获取标签试题数
  104. /// </summary>
  105. /// <param name="tagQuestionCountForPracticeRequest"></param>
  106. /// <returns></returns>
  107. [HttpPost(PracticeApiRoute.GetTagQuestionCount)]
  108. public async Task<TagQuestionCountViewResponse> GetTagQuestionCount([FromBody] TagQuestionCountForPracticeRequest tagQuestionCountForPracticeRequest)
  109. {
  110. return await _practiceService.GetTagQuestionCount(tagQuestionCountForPracticeRequest);
  111. }
  112. }
  113. }