using Learn.Archives.API.Controllers.Dto; using Learn.Archives.API.Expand; using Learn.Archives.Core.Common; using Learn.Archives.Core.Model; using Learn.Archives.Core.Model.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using System.Security.Claims; using UserCenter.Model; namespace Learn.Archives.API.Controllers { /// /// 通用接口 /// [Authorize(AuthenticationSchemes = Authentication.Admin)] [Route("api/[controller]")] public class PublicController : Controller { private readonly IHostEnvironment _environment; public PublicController(Repository baseService, IHostEnvironment environment) { _environment = environment; } /// /// App.EntityDto.Enum 枚举转下拉列表 /// /// 枚举名称 例子type='ExamStatusEnum' /// [HttpGet, Route("enum/{type}")] [ResponseCache(Duration = 5)] public List GetExamStatusData(string type) { if (!AppCommon.EnumType.ContainsKey(type)) Oh.Error("无效类型"); return Enum.GetValues(AppCommon.EnumType[type]).Cast() .Select(enumValue => new ComboModel() { Text = enumValue.ToString(), Value = (int)enumValue }).ToList(); } /// /// App.EntityDto.Enum 枚举转下拉列表 /// /// 枚举名称 例子type='ExamStatusEnum' /// [HttpGet, Route("enum/{type}/Dic")] [ResponseCache(Duration = 5)] public Dictionary GetExamStatusDictionary(string type) { if (!AppCommon.EnumType.ContainsKey(type)) Oh.Error("无效类型"); return Enum.GetValues(AppCommon.EnumType[type]).Cast() .ToDictionary(s => (int)s, s => s.ToString()); } /// /// 获取当前环境变量,配置文件 /// /// [HttpGet] public IActionResult NewENV() { var envName = _environment.EnvironmentName; var env = "无配置"; if (_environment.IsDevelopment()) env = "开发环境"; else if (_environment.IsStaging()) env = "测试/预发布环境"; else if (_environment.IsProduction()) env = "生产环境"; return Ok(new { envName, env, AppCommon.Config }); } } }