using Exam.Application.Interface.Questions;
using Exam.Infrastructure.Data.Entity;
using Exam.Share.ViewResponses.Question;
using Hotline.Application.Exam.Constants.ApiRoutes;
using Hotline.Repository.SqlSugar.Entitys;
using Hotline.Share.Dtos.Questions;
using Hotline.Share.Requests.Question;
using MapsterMapper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Hotline.Api.Controllers.Exam
{
public class QuestionController : BaseController
{
private readonly IQuestionService _questionService;
private readonly IMapper _mapper;
public QuestionController(IQuestionService questionService,IMapper mapper)
{
_questionService = questionService;
this._mapper = mapper;
}
///
/// 新增题库
///
///
///
[HttpPost(QuestionApiRoute.Add)]
public async Task Add([FromBody] AddQuestionDto questionDto)
{
await _questionService.AddAsync(questionDto, HttpContext.RequestAborted);
}
///
/// 修改题库
///
///
///
[HttpPut(QuestionApiRoute.Update)]
public async Task Update([FromBody] UpdateQuestionDto questionDto)
{
await _questionService.UpdateAsync(questionDto, HttpContext.RequestAborted);
}
///
/// 删除题库
///
///
///
[HttpDelete(QuestionApiRoute.Delete)]
public async Task Delete([FromBody] EntityQueryRequest entityQueryRequest)
{
await _questionService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted);
}
///
/// 获取题库分页列表
///
///
///
[HttpPost(QuestionApiRoute.GetPagedList)]
public async Task GetPagedList([FromBody] QuestionPagedRequest questionPagedRequest)
{
var questionPageViewResponse = await _questionService.GetPagedListAsync(questionPagedRequest);
return questionPageViewResponse as QuestionPageViewResponse;
}
///
/// 获取题库
///
///
///
[HttpGet(QuestionApiRoute.Get)]
public async Task Get(string id)
{
var questionDto = await _questionService.GetAsync(new EntityQueryRequest
{
Id = id
});
return questionDto;
}
///
/// 获取题库
///
///
///
[HttpPost(QuestionApiRoute.GetList)]
public async Task<(int,List)> GetList([FromBody]QuestionRequest questionRequest)
{
var questionPagedRequest = _mapper.Map(questionRequest);
return await _questionService.GetListAsync(questionPagedRequest);
}
///
/// 更新开启状态
///
///
///
[HttpPost(QuestionApiRoute.UpdateStatus)]
public async Task UpdateStatus([FromBody] List statusActionRequests)
{
await _questionService.UpdateStatus(statusActionRequests, HttpContext.RequestAborted);
}
///
/// 导入Excel
///
///
[HttpPost(ExamManageApiRoute.ImportExcel)]
public async Task ImportExcel(IFormFile files)
{
await _questionService.ImportExcel(files, HttpContext.RequestAborted);
}
}
}