コード例 #1
0
        public static string ReadUrl(string url, bool enableCaching = false, long cacheDurationInSeconds = 86400)
        {
            if (url == null)
            {
                return("");
            }

            var absUrl = URIHelper.ConvertToAbsUrl(url).ToLower();

            var    data    = "";
            string absPath = URIHelper.ConvertToAbsPath(URIHelper.ConvertAbsUrlToTilda(url));

            using (FileStream fs = File.Open(absPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                using (BufferedStream bs = new BufferedStream(fs))
                    using (StreamReader sr = new StreamReader(bs))
                    {
                        data = sr.ReadToEnd();
                    }

            if (enableCaching)
            {
                ContextHelper.SaveToCache(absUrl, data, DateTime.Now.AddSeconds(cacheDurationInSeconds));
            }

            return(data);
        }
コード例 #2
0
ファイル: MediaDetail.cs プロジェクト: kikkoi/FlexDotnetCMS
        public void SaveToMemoryCache(RenderVersion renderVersion, string html)
        {
            if (HasDraft || HistoryVersionNumber != 0)
            {
                return;
            }

            var key = GetCacheKey(renderVersion);

            ContextHelper.SaveToCache(key, html);
        }
コード例 #3
0
        public dynamic GetTweetsByScreenName(string screenName, int count = 2, bool returnRawResults = false)
        {
            var key           = "HomeTweets";
            var rawResultsKey = "RawResultHomeTweets";

            var homeTweets = (List <LinqToTwitter.Status>)ContextHelper.GetFromCache(key);
            var rawResults = (string)ContextHelper.GetFromCache(rawResultsKey);

            if ((returnRawResults) && (!string.IsNullOrEmpty(rawResults)))
            {
                return(rawResults);
            }

            if (homeTweets != null)
            {
                return(homeTweets);
            }

            try
            {
                var twitterContext = new TwitterContext(GetOAuthToken());

                var queryResults =
                    (from tweet in twitterContext.Status
                     where tweet.Type == StatusType.User && tweet.ScreenName == screenName && tweet.Count == count && tweet.IncludeRetweets == true
                     select tweet);

                var queryResultsList = queryResults.ToList();

                ContextHelper.SaveToCache(key, queryResultsList, DateTime.Now.AddMinutes(10));
                ContextHelper.SaveToCache(rawResultsKey, twitterContext.RawResult, DateTime.Now.AddMinutes(10));

                if (returnRawResults)
                {
                    return(twitterContext.RawResult);
                }
                else
                {
                    return(queryResultsList);
                }
            }
            catch (Exception ex)
            {
                ErrorHelper.LogException(ex);
                ContextHelper.RemoveFromCache(key);
            }

            return(homeTweets);
        }