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