using JetBrains.Annotations;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Text.Formatting;
namespace NPin.Framework.SettingManagement.Domain.Caching;
///
/// 设置缓存项
/// 忽略多租户
///
[Serializable]
[IgnoreMultiTenancy]
public class SettingCacheItem
{
///
/// 缓存Key格式化参数
/// pn: providerName
/// pk: providerKey
/// n: name
///
private const string CacheKeyFormat = "pn:{0},pk:{1},n:{2}";
///
/// 值
///
public string? Value { get; set; }
public SettingCacheItem()
{
}
public SettingCacheItem(string? value)
{
Value = value;
}
public static string CalculateCacheKey(string name, string providerName, string providerKey)
{
return string.Format(CacheKeyFormat, providerName, providerKey, name);
}
public static string? GetSettingNameFormCacheKeyOrNull(string cacheKey)
{
var result = FormattedStringValueExtracter.Extract(cacheKey, CacheKeyFormat, true);
return result.IsMatch ? result.Matches.Last().Value : null;
}
}