public WidgetGroupItemList GetProfileTwitterFeeds(string twitterProfileUrl, OauthAuthentication oauthAuthentication) { //Using Twitter Oauth: http://www.codeproject.com/Articles/247336/Twitter-OAuth-authentication-using-Net _widgetGroupItems = _cache[_cacheKey] == null ? null : _cache[_cacheKey] as WidgetGroupItemList; if (_widgetGroupItems == null) { _widgetGroupItems = new WidgetGroupItemList(); var oauthToken = GetOauthToken(oauthAuthentication); var oauthHeader = GetOauthHeader(OauthHeaderType.Bearer, oauthToken); StreamReader reader = null; ServicePointManager.Expect100Continue = false; try { HttpWebRequest request = null; request = WebRequest.Create(twitterProfileUrl) as HttpWebRequest; if (request != null) { request.Headers.Add("Authorization", oauthHeader); request.Method = "GET"; request.ContentType = "application/x-www-form-urlencoded"; using (var response = request.GetResponse() as HttpWebResponse) { using (Stream respStream = response.GetResponseStream()) { if (respStream != null) { reader = new StreamReader(respStream); string xmlString = reader.ReadToEnd(); reader.Close(); return(ConvertRawTweetsToXmlConsumables(xmlString)); } } } } return(new WidgetGroupItemList()); } catch (Exception e) { if (reader != null) { reader.Close(); } throw e; } } else { return(_cache[_cacheKey] as WidgetGroupItemList); } }
// GET: Twitter Feeds public async Task <IActionResult> TwitterProfileFeeds() { var caching = new SimbaToursEastAfrica.Caching.Concretes.SimbaToursEastAfricaCahing(); var twitterEngine = new TwitterProfileFeed <WidgetGroupItemList>(); twitterEngine.TwitterProfileFiguration = _twitterProfileFiguration; var tweets = new WidgetGroupItemList(); Int32.TryParse(_twitterProfileFiguration["cacheTimeSecs"], out int cacheTimeSecs); tweets = await caching.GetOrSaveToCache <WidgetGroupItemList>(_twitterProfileFiguration["cachKey"], cacheTimeSecs, twitterEngine.GetFeeds); if (tweets != null && tweets.Any()) { ViewBag.TwitterProfileFeeds = tweets; } else if (tweets == null || !tweets.Any()) { tweets = new WidgetGroupItemList(); } return(Ok(tweets)); }