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); }
public async Task <ActionResult> TwitterAdvancedSearchAsync(TwitterSearchParam searchParam) { return(PartialView("_TwitterSearchResultsPartial", await FinalProjectSocialzR.Services.TwitterSearchServices.GetTweetsAsync(searchParam))); }