using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using TEAMModelOS.API.Models.Core; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse; using TEAMModelOS.SDK.Helper.Common.CollectionHelper; using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces; namespace TEAMModelOS.API.Controllers.Syllabus { [Route("api/[controller]")] [ApiController] [Authorize] public class SyllabusController : BaseController { private readonly IAzureCosmosDBRepository azureCosmosDBRepository; public SyllabusController(IAzureCosmosDBRepository _azureCosmosDBRepository) { azureCosmosDBRepository = _azureCosmosDBRepository; } /// /// 根据课纲的业务获取 /// /// /// [HttpPost("GetSchoolInfoAsSyllabus")] public async Task GetSchoolInfoAsSyllabus(JosnRPCRequest> request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); if (request.@params != null && request.@params.TryGetValue("Code", out _)) { List schoolSystems = await azureCosmosDBRepository.FindByParams(request.@params); List plist = new List(); if (schoolSystems.IsNotEmpty()) { List periods = schoolSystems[0].period; foreach (Period period in periods) { List slist = new List(); ///学科包含学期的数据 foreach (Subject subject in period.subjects) { List mlist = new List(); foreach (Semester semester in period.semesters) { dynamic sem = new { semester.semesterName, semester.semesterCode }; mlist.Add(sem); } dynamic sub = new { semester = mlist, subject.subjectName, subject.subjectCode }; slist.Add(sub); } dynamic per = new { subject = slist, period.periodName, period.periodCode }; plist.Add(per); } } return builder.Data(plist).build(); } else { return builder.Error("SchoolCode is null or empty!", "SchoolCode is null or empty!").build(); } } } }