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();
}
}
}
}