using Microsoft.Extensions.Caching.Memory;
using YLErp.Abstract;
using YLErp.Model;
using YLErp.Modules.DataCacheModule;
namespace YLErp.Modules
{
///
/// 缓存数据提供
///
public static class DataCacheProvider
{
static readonly MemoryCache _memoryCache;
static DataCacheProvider()
{
_memoryCache = new MemoryCache(new MemoryCacheOptions { });
}
///
/// 获取缓存值
///
public static object GetCache(string key)
{
return _memoryCache.Get(key);
}
///
/// 设置缓存
///
/// 缓存键
/// 缓存值
/// 绝对到期时间
public static void SetCache(string key, object value, DateTimeOffset absoluteExpiration)
{
_memoryCache.Set(key, value, absoluteExpiration);
}
///
/// 设置缓存
///
/// 缓存键
/// 缓存值
/// 最后一次访问之后经过多长时间缓存到期
public static void SetCache(string key, object value, TimeSpan slidingExpiration)
{
var options = new MemoryCacheEntryOptions().SetSlidingExpiration(slidingExpiration);
_memoryCache.Set(key, value, options);
}
///
/// 交易品种
///
public static IDataSourceKey2 GetVarietyDataSource()
{
return DataCacheManager.GetVarietyDataSource();
}
///
/// 期权标的
///
public static IUnderlyingDataSource GetUnderlyingDataSource()
{
return DataCacheManager.GetUnderlyingDataSource();
}
///
/// 场内期权基础数据
///
public static IDataSourceKey2 GetExchangeListOptionDataSource()
{
return DataCacheManager.GetExchangeListOptionDataSource();
}
///
/// 标的相关性
///
public static IDataSource GetCorrelationDataSource()
{
return DataCacheManager.GetCorrelationDataSource();
}
///
/// 个股黑白名单
///
public static IDataSource GetStockBlackWhiteDataSource()
{
return DataCacheManager.GetStockBlackWhiteDataSource();
}
///
/// 股票手续费设定
///
public static IDataSource GetStockCommissionDataSource()
{
return DataCacheManager.GetStockCommissionDataSource();
}
///
/// 对冲账户
///
public static IDataSource GetExchangeAccountDataSource()
{
return DataCacheManager.GetExchangeAccountDataSource();
}
///
/// 簿记账户
///
public static IDataSource GetAssetUnitDataSource()
{
return DataCacheManager.GetAssetUnitDataSource();
}
///
/// 簿记账户组
///
public static IDataSource GetAssetUnitGroupDataSource()
{
return DataCacheManager.GetAssetUnitGroupDataSource();
}
///
/// 客户黑名单
///
public static IDataSource GetClientBlackDataSource()
{
return DataCacheManager.GetClientBlackDataSource();
}
///
/// 客户信息
///
public static IDataSource GetClientDataSource()
{
return DataCacheManager.GetClientDataSource();
}
///
/// 客户等级信息
///
public static IDataSource GetClientLevelDataSource()
{
return DataCacheManager.GetClientLevelDataSource();
}
///
/// 市场信息
///
public static IDataSource GetMarketDataSource()
{
return DataCacheManager.GetMarketDataSource();
}
///
/// 根据标的代码获取品种
///
public static Variety GetVariety(string underlyingCode)
{
var un = GetUnderlyingDataSource().GetData(underlyingCode);
if (un != null && un.UnderlyingTypeId > 0)
{
return GetVarietyDataSource().GetData(un.UnderlyingTypeId);
}
return null;
}
}
}