|
@@ -1,13 +1,20 @@
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using TEAMModelOS.Controllers.Core;
|
|
using TEAMModelOS.Controllers.Core;
|
|
-using TEAMModelOS.Model.Evaluation.Dtos.Own;
|
|
|
|
|
|
+using TEAMModelOS.Model.Evaluation.Dtos;
|
|
using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
|
|
using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
|
|
using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
|
|
using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
|
|
|
|
+using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
|
|
|
|
+using TEAMModelOS.SDK.Helper.Security.ShaHash;
|
|
|
|
+using TEAMModelOS.SDK.Module.AzureBlob.Container;
|
|
|
|
+using TEAMModelOS.SDK.Module.AzureBlob.Interfaces;
|
|
|
|
+using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
|
|
|
|
+using TEAMModelOS.Service.Core.Interfaces;
|
|
using TEAMModelOS.Service.Evaluation.Interfaces;
|
|
using TEAMModelOS.Service.Evaluation.Interfaces;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers.Evaluation
|
|
namespace TEAMModelOS.Controllers.Evaluation
|
|
@@ -19,10 +26,20 @@ namespace TEAMModelOS.Controllers.Evaluation
|
|
[Authorize]
|
|
[Authorize]
|
|
public class ImportExerciseController : BaseController
|
|
public class ImportExerciseController : BaseController
|
|
{
|
|
{
|
|
- private readonly IImportExerciseService importExerciseService;
|
|
|
|
-
|
|
|
|
- public ImportExerciseController(IImportExerciseService _importExerciseService) {
|
|
|
|
|
|
+ private readonly IImportExerciseService importExerciseService;
|
|
|
|
+ private readonly IAzureBlobModelService _azureBlobModelService;
|
|
|
|
+ private readonly IAzureBlobDBRepository _azureBlobDBRepository;
|
|
|
|
+ private readonly IAzureTableDBRepository azureTableDBRepository;
|
|
|
|
+ private readonly IHtmlAnalyzeService htmlAnalyzeService;
|
|
|
|
+ public ImportExerciseController(IImportExerciseService _importExerciseService, IHtmlAnalyzeService _htmlAnalyzeService,
|
|
|
|
+ IAzureBlobModelService azureBlobModelService,
|
|
|
|
+ IAzureBlobDBRepository azureBlobDBRepository,
|
|
|
|
+ IAzureTableDBRepository _azureTableDBRepository) {
|
|
importExerciseService = _importExerciseService;
|
|
importExerciseService = _importExerciseService;
|
|
|
|
+ _azureBlobModelService = azureBlobModelService;
|
|
|
|
+ _azureBlobDBRepository = azureBlobDBRepository;
|
|
|
|
+ azureTableDBRepository = _azureTableDBRepository;
|
|
|
|
+ htmlAnalyzeService = _htmlAnalyzeService;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -39,6 +56,46 @@ namespace TEAMModelOS.Controllers.Evaluation
|
|
List<ExerciseDto> exercises= await importExerciseService.AnalyzeWordAsync(request.@params ,request.lang);
|
|
List<ExerciseDto> exercises= await importExerciseService.AnalyzeWordAsync(request.@params ,request.lang);
|
|
return builder.Data(exercises).build();
|
|
return builder.Data(exercises).build();
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// docUrl
|
|
|
|
+ /// folder
|
|
|
|
+ /// shaCode
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="request"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpPost("uploadWord")]
|
|
|
|
+ [RequestSizeLimit(102_400_000_00)] //最大10000m左右
|
|
|
|
+ public async Task<BaseJosnRPCResponse> UploadWord([FromForm] IFormFile file)
|
|
|
|
+ {
|
|
|
|
+ JsonRPCResponseBuilder responseBuilder = new JsonRPCResponseBuilder();
|
|
|
|
+ if (!FileType.GetExtention(file.FileName).ToLower().Equals("docx"))
|
|
|
|
+ {
|
|
|
|
+ return responseBuilder.Error("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 BaseJosnRPCResponse AnalyzeHtml(JosnRPCRequest<Dictionary<string,object>> request)
|
|
|
|
+ {
|
|
|
|
+ JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
|
+ bool flag= request.@params.TryGetValue("htmlString", out object htmlString);
|
|
|
|
+ if (flag && htmlString!=null && !string.IsNullOrEmpty(htmlString.ToString()))
|
|
|
|
+ {
|
|
|
|
+ List<ExerciseDto> exercises = htmlAnalyzeService.AnalyzeWordAsync(htmlString.ToString(), request.lang);
|
|
|
|
+ return builder.Data(exercises).build();
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return builder.Data(null).build();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|