using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Rhea.Common; using System; using System.Collections.Generic; using System.Linq; using System.Security.AccessControl; using System.Text; namespace Tiger.IBusiness { public class ApiConfig { public static IServiceProvider ServiceProvider; public static IConfiguration Configuration; public static void InitConfig(IConfiguration _configuration) { Configuration = _configuration; } private static string _AllowUrl = string.Empty; /// /// 链接白名单(可不做身份验证) /// public static List AllowUrl { get { if (string.IsNullOrEmpty(_AllowUrl)) { _AllowUrl = Configuration["AllowUrl"]; } List listUrls = new List(); if (!string.IsNullOrEmpty(_AllowUrl)) { string[] urls = System.Text.RegularExpressions.Regex.Split(_AllowUrl, ","); if (urls.Length > 0) { foreach (string url in urls) { if (!listUrls.Contains(url)) { listUrls.Add(url); } } } } return listUrls; } } private static string _FilePath = string.Empty; /// /// 文件路径 /// public static string FilePath { get { if (string.IsNullOrEmpty(_FilePath)) { _FilePath = Configuration["CommonSettings:FilePath"]; } return _FilePath; } } /// /// 更新路径 /// public static string UpgradePath => (string.IsNullOrEmpty(Configuration["Upgrade:Path"]) ? (AppDomain.CurrentDomain.BaseDirectory + "Upgrade") : Configuration["Upgrade:Path"]) + "\\"; private static string _IsOpenCache = string.Empty; /// /// 是否使用Redis /// public static bool IsOpenCache { get { if (string.IsNullOrEmpty(_IsOpenCache)) { _IsOpenCache = Configuration["Redis:IsOpenRedis"]; } if (_IsOpenCache.ToLower() == "true") { return true; } return false; } } private static string _RedisConnectionString = string.Empty; /// /// Redis默认连接串 /// public static string RedisConnectionString { get { if (string.IsNullOrEmpty(_RedisConnectionString)) { _RedisConnectionString = Configuration["Redis:ConnectionString"]; } return _RedisConnectionString; } } /// /// 统一请求页面实体 /// public static HttpContext HttpCurrent { get { object factory = ServiceProvider.GetService(typeof(IHttpContextAccessor)); HttpContext context = ((IHttpContextAccessor)factory).HttpContext; return context; } } /// /// 事务超时小时数 /// public static int Transaction_TimeoutHours { get => Convert.ToInt32(Configuration["Transaction:TimeoutHours"] ?? "12"); } /// /// 事务超时分钟数 /// public static double Client_TimeoutMinutes { get => Convert.ToDouble(Configuration["Timeout:Client_Minutes"] ?? "60"); } /// /// 是否测试版本 /// public static bool IsTestVersion { get => Configuration.AsEnumerable().Where(q => q.Key.StartsWith("StartUpSetting:UseUrls") && q.Value == "http://*:9520").Any(); } /// /// 旧系统版本 /// public static bool IsOldVersion { get => Configuration.AsEnumerable().Where(q => q.Key.StartsWith("StartUpSetting:UseUrls") && q.Value == "http://*:9527").Any(); } /// /// 是否开发版本 /// public static bool IsDevVersion { get => Configuration.AsEnumerable().Where(q => q.Key.StartsWith("StartUpSetting:UseUrls") && q.Value == "http://*:9510").Any(); } /// /// RunInterface /// public static bool RunInterface { get => (Configuration["RunInterface"] ?? "").ToLower() == "true"; } public static bool IsTestServer { get => (BizConfig.Configuration["IsTestServer"] ?? "").ToLower() == "true"; } } public class BizConfig { public static IConfiguration Configuration => RheaConfig.Configuration; public static string DB_ModelAssembly => RheaConfig.DB_ModelAssembly; public static string DefaultLanguage => Configuration?["DefaultLanguage"] ?? "zh-cn"; public static void InitConfig(IConfiguration _configuration, Dictionary> language) { //Init Rhea Rhea.Common.RheaConfig.InitConfig(_configuration); Rhea.Common.Language.Default = DefaultLanguage; Rhea.Common.Language.Dictionary = language; } } }