using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using System;
using System.Reflection;
using System.Text;
using Wood.Util.JwtAuthorization;
namespace Wood.Util
{
public class GlobalContext
{
///
/// All registered service and class instance container. Which are used for dependency injection.
///
public static IServiceCollection? Services { get; set; }
///
/// Configured service provider.
///
public static IServiceProvider? ServiceProvider { get; set; }
///
/// Configuration
///
public static IConfiguration? Configuration { get; set; }
///
/// HostingEnvironment
///
public static IWebHostEnvironment? HostingEnvironment { get; set; }
///
/// 自定义系统配置信息
///
public static SystemConfig? SystemConfig { get; set; }
///
/// JWT权限验证信息
///
public static JwtConfig? JwtConfig { get; set; }
///
/// 获取配置信息
///
/// 配置路径
///
public static string? GetConfig(string path)
{
return Configuration![path]?.ToString();
}
///
/// 用户信息
///
public static JwtUserInfo? UserInfo
{
get
{
var httpContextAccessor = ServiceProvider?.GetRequiredService();
return httpContextAccessor?.UserInfo();
}
}
public static string GetVersion()
{
Version version = Assembly.GetEntryAssembly()!.GetName().Version!;
return version.Major + "." + version.Minor;
}
///
/// 程序启动时,记录目录
///
///
public static void LogWhenStart(IWebHostEnvironment env)
{
StringBuilder sb = new StringBuilder();
sb.Append("程序启动");
sb.Append(" |ContentRootPath:" + env.ContentRootPath);
sb.Append(" |WebRootPath:" + env.WebRootPath);
sb.Append(" |IsDevelopment:" + env.IsDevelopment());
Log.Debug(sb.ToString());
}
}
}