Beispiel #1
0
        /// <summary>
        /// 寫入快取
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSetCache_Click(object sender, EventArgs e)
        {
            CacheModel.SetCache query = new CacheModel.SetCache()
            {
                CacheName  = txtSetCacheName.Text,
                CacheValue = txtSetCacheValue.Text,
            };

            bool blIsSuccess = cache.SetCache(query);

            txtResult.Text = blIsSuccess.ToString();
        }
Beispiel #2
0
        public HttpResponseMessage SetCache(CacheModel.SetCache value)
        {
            HttpResponseMessage result = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent("OK"),
            };

            try
            {
                CacheItemPolicy policy = new CacheItemPolicy();

                // 指定過期時間,如果都沒有指定,就預設7天
                if (value.AbsoluteExpirationMinute > 0)
                {
                    policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(value.AbsoluteExpirationMinute);
                }
                else if (value.SlidingExpirationMinute > 0)
                {
                    policy.SlidingExpiration = TimeSpan.FromMinutes(value.SlidingExpirationMinute);
                }
                else
                {
                    policy.SlidingExpiration = TimeSpan.FromDays(7);
                }

                cache.Set(value.CacheName, value.CacheValue, policy);
            }
            catch (Exception e)
            {
                result.StatusCode = HttpStatusCode.BadRequest;
                result.Content    = new StringContent(e.Message);
            }

            return(result);
        }