using Exam.Infrastructure.Data.Entity; using Exam.Share; using Exam.Share.ViewResponses.Exam; using Hotline.Application.Exam.Constants.ApiRoutes; using Hotline.Application.Exam.Interface.ExamManages; using Hotline.Repository.SqlSugar.Exam.Interface; using Hotline.Share.Requests.Exam; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Hotline.Api.Controllers.Exam { public class ExamManageController : BaseController { private readonly IExamManageService _examManageService; public ExamManageController(IExamManageService examManageService) { _examManageService = examManageService; } /// /// 新增考试 /// /// /// [HttpPost(ExamManageApiRoute.Add)] public async Task Add([FromBody] AddExamManageDto questionDto) { await _examManageService.AddAsync(questionDto, HttpContext.RequestAborted); } /// /// 修改考试 /// /// /// [HttpPut(ExamManageApiRoute.Update)] public async Task Update([FromBody] UpdateExamManageDto questionDto) { await _examManageService.UpdateAsync(questionDto, HttpContext.RequestAborted); } /// /// 删除考试 /// /// /// [HttpDelete(ExamManageApiRoute.Delete)] public async Task Delete([FromBody] EntityQueryRequest entityQueryRequest) { await _examManageService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted); } /// /// 获取考试分页列表 /// /// /// [HttpPost(ExamManageApiRoute.GetPagedList)] public async Task GetPagedList([FromBody] ExamManagePagedRequest questionPagedRequest) { await _examManageService.UpdateExamStatus(new EntityQueryRequest(), HttpContext.RequestAborted); var questionPageViewResponse = await _examManageService.GetPagedListAsync(questionPagedRequest); return questionPageViewResponse as ExamManagePageViewResponse; } /// /// 获取考试 /// /// /// [HttpGet(ExamManageApiRoute.Get)] public async Task Get(string id) { var questionDto = await _examManageService.GetAsync(new EntityQueryRequest { Id = id }); return questionDto; } /// /// 组卷 /// /// /// [HttpPost(ExamManageApiRoute.GenerateTestPaper)] public async Task GenerateTestPaper([FromBody]GenerateExamTestPaperRequest generateExamTestPaperRequest) { await _examManageService.GenerateTestPaper(generateExamTestPaperRequest, HttpContext.RequestAborted); } /// /// 更新开启状态 /// /// /// [HttpPost(ExamManageApiRoute.UpdateStatus)] public async Task UpdateStatus([FromBody] List statusActionRequests) { await _examManageService.UpdateStatus(statusActionRequests, HttpContext.RequestAborted); } /// /// 更新考试状态 /// /// /// [HttpPost(ExamManageApiRoute.UpdateExamStatus)] public async Task UpdateExamStatus([FromBody] EntityQueryRequest entityQueryRequest) { await _examManageService.UpdateExamStatus(entityQueryRequest, HttpContext.RequestAborted); } } }