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);
}
}
}