123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.Options;
- using System.Collections.Generic;
- using TEAMModelOS.SDK.DI;
- using TEAMModelOS.SDK;
- using TEAMModelOS.Models;
- using System.Text.Json;
- using System.Threading.Tasks;
- using TEAMModelOS.Filter;
- using System.Text.Json.Nodes;
- using TEAMModelOS.SDK.Models.Cosmos.Normal;
- using Microsoft.Azure.Cosmos;
- using TEAMModelOS.SDK.Models.Service;
- using TEAMModelOS.SDK.Models.Cosmos;
- namespace TEAMModelOS.Controllers.Both
- {
- [ProducesResponseType(StatusCodes.Status200OK)]
- [ProducesResponseType(StatusCodes.Status400BadRequest)]
- [Route("evaluation-sync")]
- [ApiController]
- public class EvaluationSyncInfoController : ControllerBase
- {
- private AzureCosmosFactory _azureCosmos;
- private readonly DingDing _dingDing;
- private readonly CoreAPIHttpService _coreAPIHttpService;
- private readonly Option _option;
- private readonly AzureServiceBusFactory _serviceBus;
- private readonly AzureStorageFactory _azureStorage;
- private readonly AzureRedisFactory _azureRedis;
- public IConfiguration _configuration { get; set; }
- public EvaluationSyncInfoController(AzureRedisFactory azureRedis, AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, CoreAPIHttpService coreAPIHttpService, AzureServiceBusFactory serviceBus, AzureStorageFactory azureStorage, IConfiguration configuration)
- {
- _azureCosmos = azureCosmos;
- _dingDing = dingDing;
- _option = option?.Value;
- _serviceBus = serviceBus;
- _configuration = configuration;
- _azureStorage = azureStorage;
- _azureRedis = azureRedis; _coreAPIHttpService = coreAPIHttpService;
- }
- /// <summary>
- /// 评测信息打包
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [ProducesDefaultResponseType]
- [AuthToken(Roles = "teacher,admin")]
- [HttpPost("package")]
- //#if !DEBUG
- // [Authorize(Roles = "IES")]
- //#endif
- public async Task<IActionResult> Package(JsonNode request)
- {
- /*
- {
- "id":"活动id",
- "scope":"school/private",
- "owner":"学校简码/醍摩豆id",
- "type":"Art/Exam"
- }
- */
- if (!string.IsNullOrWhiteSpace($"{request["pid"]}"))
- {
- //区级发布的活动
- var result= await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ArtEvaluation>($"select c.id,c.scope,c.school from c where c.pId ='{request["pid"]}' and c.pk='Art' ");
- if (result.list.IsNotEmpty())
- {
- foreach (var item in result.list)
- {
- await EvaluationSyncInfoService.PackageEvaluation(item.id, item.scope, item.school, "Art", _azureCosmos, _azureStorage, _coreAPIHttpService, _dingDing);
- }
- }
- }
- if (request["evaluation"]!=null)
- {
- var activity = JsonSerializer.Deserialize<EvaluationSyncInfo>(request["evaluation"]);
- ValidResult validResult = activity.Valid();
- if (!validResult.isVaild)
- {
- await EvaluationSyncInfoService.PackageEvaluation(activity.id, activity.scope, activity.owner, activity.type, _azureCosmos, _azureStorage, _coreAPIHttpService,_dingDing);
- return BadRequest(validResult);
- }
-
- }
- return Ok();
- }
- }
- }
|