123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using TEAMModelOS.SDK.Context.Constant.Common;
- using TEAMModelOS.SDK.Context.Exception;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
- using TEAMModelOS.Service.Model.PowerPoint;
- using TEAMModelOS.Service.Services.Exam.Implements;
- using TEAMModelOS.Service.Services.Exam.Interfaces;
- using TEAMModelOS.Service.Services.PowerPoint.Interface;
- namespace TEAMModelOS.Controllers
- {
- [Route("api/[controller]")]
- [ApiController]
- public class ImportExerciseController : BaseController
- {
- private readonly IImportExerciseService importExerciseService;
- private readonly IHtmlAnalyzeService htmlAnalyzeService;
- private readonly IHtexService htexService;
- public ImportExerciseController(IImportExerciseService _importExerciseService, IHtmlAnalyzeService _htmlAnalyzeService , IHtexService _htexService)
- {
- importExerciseService = _importExerciseService;
- htmlAnalyzeService = _htmlAnalyzeService;
- htexService = _htexService;
- }
- /// <summary>
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("LoadDoc")]
- [RequestSizeLimit(102_400_000_00)] //最大10000m左右
- public async Task<BaseResponse> LoadDoc([FromForm] IFormFile file)
- {
- ResponseBuilder responseBuilder = new ResponseBuilder();
- Dictionary<string, object> model = await htexService.LoadDoc(file);
- return responseBuilder.Data(model).build();
- }
- /// <summary>
- /// docUrl
- /// folder
- /// shaCode
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("UploadWord")]
- [RequestSizeLimit(102_400_000_00)] //最大10000m左右
- public async Task<BaseResponse> UploadWord([FromForm] IFormFile file)
- {
- ResponseBuilder responseBuilder = new ResponseBuilder();
- if (!FileType.GetExtention(file.FileName).ToLower().Equals("docx"))
- {
- return responseBuilder.Error(ResponseCode.FAILED, "type is not docx!").build();
- }
- Dictionary<string, object> model = await importExerciseService.UploadWord(file);
- return responseBuilder.Data(model).build();
- }
- /// <summary>
- /// htmlString
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("AnalyzeHtml")]
- public BaseResponse AnalyzeHtml(JosnRequest<Dictionary<string, object>> request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- bool flag = request.@params.TryGetValue("htmlString", out object htmlString);
- if (flag && htmlString != null && !string.IsNullOrEmpty(htmlString.ToString()))
- {
- List<Service.Models.ItemInfo> exercises = htmlAnalyzeService.AnalyzeWordAsync(htmlString.ToString(), request.lang);
- return builder.Data(exercises).build();
- }
- else
- {
- return builder.Data(null).build();
- }
- }
- /// <summary>
- /// htmlString
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("HtmlToHtex")]
- public async Task<BaseResponse> HtmlToHtex(JosnRequest<Dictionary<string, object>> request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- bool flag = request.@params.TryGetValue("htmlString", out object htmlString);
- if (flag && htmlString != null && !string.IsNullOrEmpty(htmlString.ToString()))
- {
- Htex exercises = await htexService.AnalyzeHtmlToHtex(htmlString.ToString(), request.lang);
- return builder.Data(exercises).build();
- }
- else
- {
- return builder.Data(null).build();
- }
- }
- }
- }
|