using NetAdmin.Domain.Dto;
using NetAdmin.Host.Controllers;
using NetAdmin.SysComponent.Application.Modules.Sys;
using NetAdmin.SysComponent.Application.Services.Sys.Dependency;
using NetAdmin.SysComponent.Cache.Sys.Dependency;
namespace NetAdmin.SysComponent.Host.Controllers.Sys;
///
/// 常量服务
///
[AllowAnonymous]
[ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))]
public sealed class ConstantController : ControllerBase, IConstantModule
{
private readonly JsonOptions _jsonOptions;
///
/// Initializes a new instance of the class.
///
public ConstantController(IConstantCache cache, IOptions jsonOptions) //
: base(cache)
{
_jsonOptions = jsonOptions.Value;
}
///
/// 获得常量字符串
///
[NonUnify]
public IActionResult GetChars()
{
var ret = GetCharsDic();
return OriginNamingResult(ret);
}
///
/// 获得常量字符串
///
[NonAction]
public IDictionary GetCharsDic()
{
return Cache.GetCharsDic();
}
///
/// 获得公共枚举值
///
public IDictionary> GetEnums()
{
return Cache.GetEnums();
}
///
/// 获得本地化字符串
///
public IDictionary GetLocalizedStrings()
{
return Cache.GetLocalizedStrings();
}
///
/// 获得数字常量表
///
[NonUnify]
public IActionResult GetNumbers()
{
var ret = GetNumbersDic();
return OriginNamingResult(ret);
}
///
/// 获得数字常量表
///
[NonAction]
public IDictionary GetNumbersDic()
{
return Cache.GetNumbersDic();
}
private IActionResult OriginNamingResult(T data)
{
return new JsonResult( //
new RestfulInfo { Code = 0, Data = data }
, new JsonSerializerOptions(_jsonOptions.JsonSerializerOptions) { DictionaryKeyPolicy = null });
}
}