示例#1
0
 /// <summary>
 /// Instances of  caching provider.
 /// </summary>
 /// <returns>The Implemments provider of cache system defind in config.</returns>
 public static CachingProvider Instance(ProviderLevel Level)
 {
     if (providerInstances.ContainsKey(Level))
     {
         return(providerInstances[Level]);
     }
     return(defaultCachingProvider);
 }
示例#2
0
 /// <summary>
 /// Instances of provider.
 /// </summary>
 /// <returns>The Implemments provider of system defind in config.</returns>
 public static EventQueueProvider Instance(ProviderLevel Level)
 {
     if (providerInstances.ContainsKey(Level))
     {
         return(providerInstances[Level]);
     }
     return(defaultEventQueueProvider);
 }
示例#3
0
 ///-----------------------------------------------------------------------------
 /// <summary>
 /// Constructs a new CacheItemArgs Object
 /// </summary>
 /// <param name="key"></param>
 /// <param name="timeout"></param>
 /// <param name="level"></param>
 /// <param name="parameters"></param>
 ///-----------------------------------------------------------------------------
 public CacheItemArgs(string key, int timeout, int expireTimeout, ProviderLevel level, params object[] parameters)
 {
     CacheKey             = key;
     CacheTimeOutMinutes  = timeout;
     ExpireTimeOutMinutes = expireTimeout;
     Level  = level;
     Params = parameters;
 }
示例#4
0
 public static DataStoreProvider Instance(ProviderLevel Level)
 {
     if (providerInstances.ContainsKey(Level))
     {
         return(providerInstances[Level]);
     }
     return(defaultProvider);
 }
示例#5
0
        public void Publish(IntegrationEvent @event, ProviderLevel level)
        {
            var eventName = _subsManager.GetEventKey(@event);

            _logger.LogInformation($"Publish Start:{eventName}, ID:{@event.Id}");

            Providers.EventQueueProvider.Instance(level).Publish(@event);

            _logger.LogInformation($"Publish End:{eventName}, ID:{@event.Id}");
        }
示例#6
0
        public long DecrementValueInHash(string hashId, string key, int count, ProviderLevel level)
        {
            var provider = CachingProvider.Instance(level);

            if (!provider.IsDistributedCache())
            {
                object @lock = UniqueObject.GetUniqueObject <object>(key);
                lock (@lock)
                {
                    var retVal = provider.DecrementValueInHash(hashId, key, count);
                    UniqueObject.RemoveUniqueObject(key);
                    return(retVal);
                }
            }
            return(provider.DecrementValueInHash(hashId, key, count));
        }
示例#7
0
 public bool RemoveEntryFromHash <TKey>(string hashId, TKey key, ProviderLevel level)
 {
     return(CachingProvider.Instance(level).RemoveEntryFromHash <TKey>(hashId, key));
 }
示例#8
0
 public void SetEntryInHash <TKey, T>(string hashId, TKey key, T value, ProviderLevel level)
 {
     CachingProvider.Instance(level).SetEntryInHash <TKey, T>(hashId, key, value);
 }
示例#9
0
 public T GetValueFromHash <TKey, T>(string hashId, TKey key, ProviderLevel level)
 {
     return(CachingProvider.Instance(level).GetValueFromHash <TKey, T>(hashId, key));
 }
示例#10
0
 public void RemoveList(string listName, ProviderLevel level)
 {
     CachingProvider.Instance(level).RemoveList(listName);
 }
示例#11
0
        public long GetHashCount(string hashId, ProviderLevel level)
        {
            var count = CachingProvider.Instance(level).GetHashCount(hashId);

            return(count);
        }
示例#12
0
 ///-----------------------------------------------------------------------------
 /// <summary>
 /// Constructs a new CacheItemArgs Object
 /// </summary>
 /// <param name="key"></param>
 /// <param name="level"></param>
 ///-----------------------------------------------------------------------------
 public CacheItemArgs(string key, ProviderLevel level)
     : this(key, 20, 0, level, null)
 {
 }
示例#13
0
 public void RemoveFromList <T>(string listName, T value, ProviderLevel level)
 {
     CachingProvider.Instance(level).RemoveFromList <T>(listName, value);
 }
示例#14
0
        public TObject GetCache <TObject>(string CacheKey, string scope = null, ProviderLevel level = ProviderLevel.Normal)
        {
            TObject objObject = CachingProvider.Instance(level).GetItem <TObject>(CacheKey, scope);

            return(objObject);
        }
示例#15
0
 public void SetCache(string CacheKey, object objObject, string Scope = null, DateTimeOffset?AbsoluteExpiration = null, TimeSpan?SlidingExpiration = null, ProviderLevel level = ProviderLevel.Normal,
                      FileCacheDependency objDependency = null, RemoveDelegate OnRemoveCallback = null)
 {
     if (objObject != null)
     {
         //if no OnRemoveCallback value is specified, use the default method
         if (OnRemoveCallback == null)
         {
             OnRemoveCallback = ItemRemovedCallback;
         }
         CachingProvider.Instance(level).Insert(CacheKey, objObject, Scope, AbsoluteExpiration, SlidingExpiration, objDependency, OnRemoveCallback);
     }
 }
示例#16
0
        public List <T> GetListRange <T>(string listName, ProviderLevel level, long start = 0, long stop = -1)
        {
            var items = CachingProvider.Instance(level).GetListRange <T>(listName, start, stop);

            return(items);
        }
示例#17
0
 public List <T> Sort <T>(string collectionKey, string byField, bool fieldIsNumber, int skip, int take, bool isAscending, ProviderLevel level)
 {
     return(CachingProvider.Instance(level).Sort <T>(collectionKey, byField, fieldIsNumber, skip, take, isAscending));
 }
示例#18
0
        public long GetListCount(string listName, ProviderLevel level)
        {
            var count = CachingProvider.Instance(level).GetListCount(listName);

            return(count);
        }
示例#19
0
 public async Task <bool> Update <T>(Expression <Func <T, bool> > filter, T doc, ProviderLevel level)
 {
     return(await DataStoreProvider.Instance(level).Update(filter, doc));
 }
示例#20
0
 public async Task <T> IncrementField <T>(Expression <Func <T, bool> > filter, string field, int amount, ProviderLevel level)
 {
     return(await DataStoreProvider.Instance(level).IncrementField(filter, field, amount));
 }
示例#21
0
        public long DecrementValue(string key, Func <long> initialCallBack, int count = 1, int expiredMinutes = 0, ProviderLevel level = ProviderLevel.Normal)
        {
            var provider = CachingProvider.Instance(level);

            if (!provider.IsDistributedCache())
            {
                object @lock = UniqueObject.GetUniqueObject <object>(key);
                lock (@lock)
                {
                    var retVal = provider.DecrementValue(key, count, expiredMinutes, initialCallBack);
                    UniqueObject.RemoveUniqueObject(key);
                    return(retVal);
                }
            }
            return(provider.DecrementValue(key, count, expiredMinutes, initialCallBack));
        }
示例#22
0
 public async Task <bool> RemoveMany <T>(Expression <Func <T, bool> > filter, ProviderLevel level)
 {
     return(await DataStoreProvider.Instance(level).RemoveMany(filter));
 }
示例#23
0
        public T GetItemFromList <T>(string listName, int listIndex, ProviderLevel level)
        {
            var objValue = CachingProvider.Instance(level).GetItemFromList <T>(listName, listIndex);

            return(objValue);
        }
示例#24
0
 public CacheItemArgs(string key, int timeoutMinutes, int expireTimeoutMinutes, ProviderLevel level)
     : this(key, timeoutMinutes, expireTimeoutMinutes, level, null)
 {
 }
示例#25
0
 public bool ExpireItem(string cacheKey, DateTime?expireTime, ProviderLevel level)
 {
     return(CachingProvider.Instance(level).ExpireItem(cacheKey, expireTime));
 }
示例#26
0
 public void SetItemInList <T>(string listName, int listIndex, T value, ProviderLevel level)
 {
     CachingProvider.Instance(level).SetItemInList <T>(listName, listIndex, value);
 }
示例#27
0
 public void RemoveCache(string CacheKey, ProviderLevel level, string Scope = null)
 {
     CachingProvider.Instance(level).Remove(CacheKey, Scope);
 }
示例#28
0
 public void EnqueueList <T>(string listName, T value, ProviderLevel level)
 {
     CachingProvider.Instance(level).EnqueueList <T>(listName, value);
 }
示例#29
0
        public T DequeueList <T>(string listName, ProviderLevel level)
        {
            var objValue = CachingProvider.Instance(level).DequeueList <T>(listName);

            return(objValue);
        }
示例#30
0
 public async Task InsertMany <T>(IEnumerable <T> documents, ProviderLevel level)
 {
     await DataStoreProvider.Instance(level).InsertMany(documents);
 }