private static void SaveLastResponse(bool fetchResponse = true)
        {
            FetchProductInfoResult fetchResult = new FetchProductInfoResult
            {
                Response = fetchResponse
            };


            if (ProductCacheLevel == CacheLevel.Session)
            {
                System.Web.HttpContext.Current.Session[SessionCacheKey()] = fetchResult;
            }
            else
            {
                var pageId = PageView.Current().ID;
                if (FetchPageCache.ContainsKey(pageId))
                {
                    FetchPageCache[pageId] = fetchResult;
                }
                else
                {
                    FetchPageCache.Add(pageId, fetchResult);
                }
            }
        }
        private static bool LastResponseValid()
        {
            FetchProductInfoResult fetchResult = null;

            if (ProductCacheLevel == CacheLevel.Session)
            {
                object oAux = System.Web.HttpContext.Current.Session[SessionCacheKey()];
                if (oAux != null)
                {
                    fetchResult = oAux as FetchProductInfoResult;
                }
            }
            else
            {
                var pageId = PageView.Current().ID;
                if (FetchPageCache.ContainsKey(pageId))
                {
                    fetchResult = FetchPageCache[pageId];
                }
            }

            if (fetchResult != null && !fetchResult.Response && fetchResult.Executed.Subtract(DateTime.Now).Minutes < 5)
            {
                return(true);
            }

            return(false);
        }