Esempio n. 1
0
        public async Task <TValue> GetAsync <TValue>(string key, CancellationToken cancellation = default(CancellationToken))
        {
            CheckIfInitialized();

            try
            {
                byte[] blob = null;
                using (var activity = _activitySource?.StartActivity("Get from cache.", ActivityKind.Producer))
                {
                    activity?.AddTag("cacheKey", key);

                    blob = await DistributeCache?.GetAsync(key, cancellation);

                    if (null == blob)
                    {
                        return(default(TValue));
                    }

                    using (var serializerActivity = _activitySource?.StartActivity("Deserialize.", ActivityKind.Producer))
                        return(SerializerFactory.Deserialize <TValue>(blob));
                }
            }
            catch (Exception ex)
            {
                throw new DataCacheException(ex.Message);
            }
        }
Esempio n. 2
0
        public async Task PutAsync <T>(string key, TimeSpan timeout, T value, bool isSlided = false, CancellationToken cancellation = default(CancellationToken))
        {
            CheckIfInitialized();

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            byte[] blob = null;

            using (var activity = _activitySource?.StartActivity("Put to cache.", ActivityKind.Producer))
            {
                using (var serializerActivity = _activitySource?.StartActivity("Serialize.", ActivityKind.Producer))
                    blob = SerializerFactory.Serialize <T>(value);

                var dceo = new DistributedCacheEntryOptions();
                if (isSlided)
                {
                    dceo.SetSlidingExpiration(timeout);
                }
                else
                {
                    dceo.SetAbsoluteExpiration(timeout);
                }

                activity?.AddTag("cacheKey", key);


                await DistributeCache.SetAsync(key, blob, dceo, cancellation);
            }
        }
Esempio n. 3
0
        public async Task <bool> RemoveAsync(string key, CancellationToken cancellation = default(CancellationToken))
        {
            using (var activity = _activitySource?.StartActivity("Remove from cache.", ActivityKind.Producer))
            {
                activity?.AddTag("cacheKey", key);
                CheckIfInitialized();

                try
                {
                    await DistributeCache.RemoveAsync(key, cancellation);

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
Esempio n. 4
0
        public bool Remove(string key)
        {
            using (var activity = _activitySource?.StartActivity("Remove from cache.", ActivityKind.Producer))
            {
                activity?.AddTag("cacheKey", key);

                CheckIfInitialized();

                try
                {
                    DistributeCache.Remove(key);
                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
Esempio n. 5
0
        public void Put <T>(string key, T value)
        {
            CheckIfInitialized();

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            using (var activity = _activitySource?.StartActivity("Put to cache.", ActivityKind.Producer))
            {
                byte[] blob = null;

                using (var serializerActivity = _activitySource?.StartActivity("Serialize.", ActivityKind.Producer))
                    blob = SerializerFactory.Serialize <T>(value);


                activity?.AddTag("cacheKey", key);
                DistributeCache?.Set(key, blob, DefaultOption);
            }
        }
Esempio n. 6
0
        public async Task PutAsync <T>(string key, T value, CancellationToken cancellation = default(CancellationToken))
        {
            CheckIfInitialized();

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            using (var activity = _activitySource?.StartActivity("Put to cache.", ActivityKind.Producer))
            {
                byte[] blob = null;

                using (var serializerActivity = _activitySource?.StartActivity("Serialize.", ActivityKind.Producer))
                    blob = SerializerFactory.Serialize <T>(value);


                activity?.AddTag("cacheKey", key);

                await DistributeCache.SetAsync(key, blob, DefaultOption, cancellation);
            }
        }