using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; using TEAMModelOS.SDK.Context.Exception; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse; using TEAMModelOS.SDK.Helper.Common.JsonHelper.JsonPath; using static System.Text.Json.JsonElement; namespace TEAMModelOS.API.Controllers.Core { [Route("api/[controller]")] [ApiController] // [Authorize] public class CommonController : BaseController { public readonly IWebHostEnvironment webHostEnvironment; public CommonController(IWebHostEnvironment _webHostEnvironment) { webHostEnvironment = _webHostEnvironment; } /// ///获取默认学科及默认年级等数据 bool =true 獲取全部 false 則從request.lang 篩選指定語言的,默認zh-CN /// /// /// [HttpPost("DataDefault")] public async Task DataDefault(JosnRPCRequest request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); string contentRootPath = webHostEnvironment.ContentRootPath; JsonDocument document = await GetJson(contentRootPath, "/JsonFile/Core/BaseDataDefault.json"); if (!request.@params) { List jsonElements = new List(); foreach (JsonElement element in document.RootElement.EnumerateArray()) { if (element.TryGetProperty("lang", out JsonElement json)) { if (json.GetString().Equals(request.lang)) { jsonElements.Add(element); } } } return builder.Data(jsonElements).build(); } else { return builder.Data(document.RootElement).build(); } } public static async Task GetJson(string contentRootPath, string name) { try { string path = contentRootPath + name; var fs = await System.IO.File.ReadAllTextAsync(path, Encoding.UTF8); return JsonDocument.Parse(fs); } catch (Exception e) { new BizException(e.Message); } return null; } } }