Esempio n. 1
0
        /// <summary>
        /// Save response from url to cache.
        /// </summary>
        /// <param name="requestUrl"></param>
        /// <param name="response"></param>
        void SaveToCache(IApiRequest request, IApiResponse response)
        {
            var entryOptions = new MemoryCacheEntryOptions()
            {
                Size = 1,
                // Add one minute so event manager has time to pull old request before it is removed
                AbsoluteExpiration = response.Expired + new TimeSpan(0, 1, 0)
            };

            cache.Set(request.GetHashCode(), response, entryOptions);
        }
Esempio n. 2
0
        /// <summary>
        /// Tries to retrive an eTag from a response.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="index"></param>
        /// <param name="eTag"></param>
        /// <returns></returns>
        bool TryGetETag(IApiRequest request, out string eTag)
        {
            if (cache.TryGetValue(request.GetHashCode(), out IApiResponse response))
            {
                eTag = response.ETag;
                return(true);
            }

            eTag = "";
            return(false);
        }
Esempio n. 3
0
 /// <summary>
 /// Check if request has been cached. And not expired
 /// </summary>
 /// <param name="request"></param>
 /// <param name="response"></param>
 /// <returns></returns>
 public bool TryHitCache(IApiRequest request, bool validateTime, out IApiResponse response)
 {
     return(cache.TryGetValue(request.GetHashCode(), out response) && (!validateTime || DateTime.Now < response.Expired));
 }