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);
            }
        }
Beispiel #2
0
        // 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));
        }