using Bootstrap.Security;
using Bootstrap.Security.DataAccess;
using Longbow.Cache;
using Longbow.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Bootstrap.Client.DataAccess
{
///
///
///
public static class DictHelper
{
///
/// 缓存索引,BootstrapAdmin后台清理缓存时使用
///
public const string RetrieveDictsDataKey = "BootstrapDict-RetrieveDicts";
///
///
///
///
public static string RetrieveProfilesUrl()
{
return RetrieveAppName("个人中心地址");
}
///
///
///
///
public static string RetrieveSettingsUrl()
{
return RetrieveAppName("系统设置地址");
}
///
///
///
///
public static string RetrieveTitle()
{
return RetrieveAppName("网站标题");
}
///
///
///
///
public static string RetrieveFooter()
{
return RetrieveAppName("网站页脚");
}
///
///
///
///
private static IEnumerable RetrieveDicts() => CacheManager.GetOrAdd(RetrieveDictsDataKey, key => DbHelper.RetrieveDicts());
private static string RetrieveAppName(string name, string defaultValue = "未设置")
{
var dicts = RetrieveDicts();
var platName = dicts.FirstOrDefault(d => d.Category == "应用程序" && d.Code == ConfigurationManager.AppSettings["AppId"])?.Name;
return dicts.FirstOrDefault(d => d.Category == platName && d.Name == name)?.Code ?? $"{name}{defaultValue}";
}
///
/// 获得网站设置中的当前样式
///
///
public static string RetrieveActiveTheme()
{
var theme = RetrieveDicts().Where(d => d.Name == "使用样式" && d.Category == "当前样式" && d.Define == 0).FirstOrDefault()?.Code;
return theme == null ? string.Empty : theme.Equals("site.css", StringComparison.OrdinalIgnoreCase) ? string.Empty : theme;
}
///
/// 获取头像路径
///
///
public static string RetrieveIconFolderPath() => (RetrieveDicts().FirstOrDefault(d => d.Name == "头像路径" && d.Category == "头像地址" && d.Define == 0) ?? new BootstrapDict() { Code = "~/images/uploader/" }).Code;
}
}