Beispiel #1
0
        public static async Task <List <Tweet> > GetTweetsAsync(TwitterSearchParam searchParam)
        {
            var auth = new MvcAuthorizer
            {
                CredentialStore = new SessionStateCredentialStore()
            };

            var ctx = new TwitterContext(auth);

            var query = ctx.Search.Where(w => w.Type == SearchType.Search && w.Query == searchParam.searchKeyWord);

            if (searchParam.Longitude != null && searchParam.Latitude != null && searchParam.Radius != null && searchParam.ZipCode != null)
            {
                query = query.Where(w => w.GeoCode == (searchParam.Latitude + "," + searchParam.Longitude + "," + searchParam.Radius + "mi"));
            }
            if (searchParam.ZipCode != null)
            {
                if (searchParam.Radius == null)
                {
                    searchParam.Radius = "50";
                }
                var longLat = await GetLongLatFromMapQuestAsync(searchParam.ZipCode);

                query = query.Where(w => w.GeoCode == (longLat.results.FirstOrDefault().locations.FirstOrDefault().latLng.lat + ","
                                                       + longLat.results.FirstOrDefault().locations.FirstOrDefault().latLng.lng + ","
                                                       + searchParam.Radius + "mi"));
            }
            if (searchParam.Language != null)
            {
                query = query.Where(w => w.SearchLanguage == searchParam.Language);
            }

            var searchResponse = query.Where(w => w.Count == 100).SingleOrDefaultAsync();
            var tweets         = await SearchResponseToTweetsAsync(await searchResponse);

            if (!searchParam.IncludeRetweet)
            {
                tweets = tweets.Where(w => w.StatusId == 0).ToList();
            }
            if (searchParam.MustContainVideo)
            {
                tweets = tweets.Where(w => w.Media != null).ToList();
            }
            if (searchParam.MustContainPhoto)
            {
                tweets = tweets.Where(w => w.MediaImage != null).ToList();
            }

            return(tweets);
        }
Beispiel #2
0
 public async Task <ActionResult> TwitterAdvancedSearchAsync(TwitterSearchParam searchParam)
 {
     return(PartialView("_TwitterSearchResultsPartial", await FinalProjectSocialzR.Services.TwitterSearchServices.GetTweetsAsync(searchParam)));
 }