using Microsoft.Extensions.Primitives; namespace Masuit.MyBlogs.Core.Extensions.DriveHelpers { public class OneDriveConfiguration { private static IConfigurationRoot ConfigurationRoot; static OneDriveConfiguration() { void BindConfig() { var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", true, true); ConfigurationRoot = builder.Build(); } BindConfig(); ChangeToken.OnChange(ConfigurationRoot.GetReloadToken, BindConfig); } /// /// 数据库连接字符串 /// public static string ConnectionString => ConfigurationRoot["OneDrive:ConnectionString"]; /// /// Graph连接 ClientID /// public static string ClientId => ConfigurationRoot["OneDrive:ClientId"]; /// /// Graph连接 ClientSecret /// public static string ClientSecret => ConfigurationRoot["OneDrive:ClientSecret"]; /// /// Binding 回调 Url /// public static string BaseUri => ConfigurationRoot["OneDrive:BaseUri"]; /// /// 返回 Scopes /// /// public static string[] Scopes => new[] { "Sites.ReadWrite.All", "Files.ReadWrite.All" }; /// /// 代理路径 /// public static string Proxy => ConfigurationRoot["OneDrive:Proxy"]; /// /// 账户名称 /// public static string AccountName => ConfigurationRoot["OneDrive:AccountName"]; /// /// 域名 /// public static string DominName => ConfigurationRoot["OneDrive:DominName"]; /// /// Office 类型 /// /// /// public static OfficeType Type => (ConfigurationRoot["OneDrive:Type"] == "China") ? OfficeType.China : OfficeType.Global; /// /// Graph Api /// /// /// public static string GraphApi => (ConfigurationRoot["OneDrive:Type"] == "China") ? "https://microsoftgraph.chinacloudapi.cn" : "https://graph.microsoft.com"; /// /// CDN URL /// public static string[] CDNUrls => ConfigurationRoot.GetSection("OneDrive:CDNUrls").GetChildren().Select(x => x.Value).ToArray(); public enum OfficeType { Global, China } } }