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