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