Esempio n. 1
0
        /// <summary>
        ///     Adds or updates object in the cache.
        /// </summary>
        /// <param name="key">Object key. Can not be null.</param>
        /// <param name="value">Object value.</param>
        /// <param name="parameters">Caching parameters.</param>
        public void Add(string key, object value, CachingParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (value == null)
            {
                this.Remove(key);
                return;
            }

            if (parameters.NoCaching)
            {
                return;
            }

            var cacheEntryOptions = new MemoryCacheEntryOptions
            {
                Priority = GetCacheItemPriority(parameters.Priority)
            };

            if (!parameters.Sliding)
            {
                cacheEntryOptions.AbsoluteExpiration = DateTimeOffset.Now + parameters.Expiration;
            }
            else
            {
                cacheEntryOptions.SlidingExpiration = parameters.Expiration;
            }

            cache.Set(key, value, cacheEntryOptions);
        }
Esempio n. 2
0
        /// <summary>
        ///     Constructor.
        /// </summary>
        /// <param name="result">Resulting data. Can be null.</param>
        /// <param name="parameters">Caching parameters. Can not be null.</param>
        public CachableResult(T result, CachingParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            this.Result     = result;
            this.Parameters = parameters;
        }
        private CachingParameters([NotNull] CachingParameters other)
        {
            if (other == null)
            {
                throw new ArgumentNullException(nameof(other));
            }

            this.Expiration = other.Expiration;
            this.Sliding    = other.Sliding;
            this.Priority   = other.Priority;
        }
Esempio n. 4
0
        /// <summary>
        ///     Adds or updates object in the cache.
        /// </summary>
        /// <param name="key">Object key. Can not be null.</param>
        /// <param name="value">Object value.</param>
        /// <param name="parameters">Caching parameters.</param>
        public void Add(string key, object value, CachingParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (value == null)
            {
                this.Remove(key);
                return;
            }

            if (parameters.NoCaching)
            {
                return;
            }

#if NET471
            var options = new CacheItemPolicy();

            if (parameters.Priority == CachePriority.NotRemovable)
            {
                options.Priority = CacheItemPriority.NotRemovable;
            }
#elif NETSTANDARD2_0
            var options = new MemoryCacheEntryOptions();

            if (parameters.Priority == CachePriority.NotRemovable)
            {
                options.Priority = CacheItemPriority.NeverRemove;
            }
#endif

            if (!parameters.Sliding)
            {
                options.AbsoluteExpiration = DateTimeOffset.Now + parameters.Expiration;
            }
            else
            {
                options.SlidingExpiration = parameters.Expiration;
            }

            this.cache.Set(key, value, options);
        }
Esempio n. 5
0
 /// <summary>
 /// Adds or updates object in the cache.
 /// </summary>
 /// <param name="key">Object key. Can not be null.</param>
 /// <param name="value">Object value.</param>
 /// <param name="parameters">Caching parameters.</param>
 public virtual void Add(string key, object value, CachingParameters parameters)
 {
     this.Items[key] = value;
 }
 /// <summary>
 ///     Constructor.
 /// </summary>
 /// <param name="result">Resulting data. Can be null.</param>
 /// <param name="parameters">Caching parameters. Can not be null.</param>
 public CachableResult(T result, [CanBeNull] CachingParameters parameters)
 {
     this.Parameters = parameters ?? throw new ArgumentNullException(nameof(parameters));
     this.Result     = result;
 }