public string getresults(string keyword) { User user = (User)Session["LoggedUser"]; int i = 0; string searchRes = string.Empty; if (!string.IsNullOrEmpty(keyword)) { DiscoverySearch dissearch = new DiscoverySearch(); DiscoverySearchRepository dissearchrepo = new DiscoverySearchRepository(); List<DiscoverySearch> discoveryList = dissearchrepo.getResultsFromKeyword(keyword); if (discoveryList.Count == 0) { #region Twitter try { oAuthTwitter oauth = new oAuthTwitter(); oauth.ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(); oauth.ConsumerKeySecret = ConfigurationManager.AppSettings["consumerSecret"].ToString(); oauth.CallBackUrl = ConfigurationManager.AppSettings["callbackurl"].ToString(); TwitterAccountRepository twtAccRepo = new TwitterAccountRepository(); ArrayList alst = twtAccRepo.getAllTwitterAccounts(); foreach (TwitterAccount item in alst) { oauth.AccessToken = item.OAuthToken; oauth.AccessTokenSecret = item.OAuthSecret; oauth.TwitterUserId = item.TwitterUserId; oauth.TwitterScreenName = item.TwitterScreenName; break; } Search search = new Search(); JArray twitterSearchResult = search.Get_Search_Tweets(oauth, keyword); foreach (var item in twitterSearchResult) { var results = item["statuses"]; foreach (var chile in results) { try { dissearch.CreatedTime = SocioBoard.Helper.Extensions.ParseTwitterTime(chile["created_at"].ToString().TrimStart('"').TrimEnd('"')); ; dissearch.EntryDate = DateTime.Now; dissearch.FromId = chile["user"]["id_str"].ToString().TrimStart('"').TrimEnd('"'); dissearch.FromName = chile["user"]["screen_name"].ToString().TrimStart('"').TrimEnd('"'); dissearch.ProfileImageUrl = chile["user"]["profile_image_url"].ToString().TrimStart('"').TrimEnd('"'); dissearch.SearchKeyword = txtSearchText.Text; dissearch.Network = "twitter"; dissearch.Message = chile["text"].ToString().TrimStart('"').TrimEnd('"'); dissearch.MessageId = chile["id_str"].ToString().TrimStart('"').TrimEnd('"'); dissearch.Id = Guid.NewGuid(); dissearch.UserId = user.Id; if (!dissearchrepo.isKeywordPresent(dissearch.SearchKeyword, dissearch.MessageId)) { dissearchrepo.addNewSearchResult(dissearch); } searchRes += this.BindData(dissearch, i); i++; } catch (Exception ex) { logger.Error(ex.StackTrace); Console.WriteLine(ex.StackTrace); } } } } catch (Exception ex) { logger.Error(ex.StackTrace); Console.WriteLine(ex.StackTrace); } #endregion #region Facebook try { #region FacebookSearch int j = 0; string accesstoken = string.Empty; FacebookAccountRepository fbAccRepo = new FacebookAccountRepository(); ArrayList asltFbAccount = fbAccRepo.getAllFacebookAccounts(); foreach (FacebookAccount item in asltFbAccount) { accesstoken = item.AccessToken; break; } string facebookSearchUrl = "https://graph.facebook.com/search?q=" + txtSearchText.Text + " &type=post&access_token="+accesstoken; var facerequest = (HttpWebRequest)WebRequest.Create(facebookSearchUrl); facerequest.Method = "GET"; string outputface = string.Empty; using (var response = facerequest.GetResponse()) { using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252))) { outputface = stream.ReadToEnd(); } } if (!outputface.StartsWith("[")) outputface = "[" + outputface + "]"; JArray facebookSearchResult = JArray.Parse(outputface); foreach (var item in facebookSearchResult) { var data = item["data"]; foreach (var chile in data) { try { dissearch.CreatedTime = DateTime.Parse(chile["created_time"].ToString()); dissearch.EntryDate = DateTime.Now; dissearch.FromId = chile["from"]["id"].ToString(); dissearch.FromName = chile["from"]["name"].ToString(); dissearch.ProfileImageUrl = "http://graph.facebook.com/" + chile["from"]["id"] + "/picture?type=small"; dissearch.SearchKeyword = txtSearchText.Text; dissearch.Network = "facebook"; dissearch.Message = chile["message"].ToString(); dissearch.MessageId = chile["id"].ToString(); dissearch.Id = Guid.NewGuid(); dissearch.UserId = user.Id; if (!dissearchrepo.isKeywordPresent(dissearch.SearchKeyword, dissearch.MessageId)) { dissearchrepo.addNewSearchResult(dissearch); } searchRes += this.BindData(dissearch, i); } catch (Exception ex) { logger.Error(ex.StackTrace); Console.WriteLine(ex.StackTrace); } } } } catch (Exception ex) { logger.Error(ex.StackTrace); Console.WriteLine(ex.StackTrace); } #endregion #endregion } else { foreach (DiscoverySearch item in discoveryList) { searchRes += this.BindData(item, i); i++; } } } return searchRes; }
protected void btnSearch_Click(object sender, EventArgs e) { int i = 0; string searchRes = string.Empty; if (!string.IsNullOrEmpty(txtSearchText.Text)) { DiscoverySearch dissearch = new DiscoverySearch(); DiscoverySearchRepository dissearchrepo = new DiscoverySearchRepository(); List<DiscoverySearch> discoveryList = dissearchrepo.getResultsFromKeyword(txtSearchText.Text); if (discoveryList.Count == 0) { #region TwitterSearch try { string twitterSearchUrl = "http://search.twitter.com/search.json?q=" + txtSearchText.Text; var request = (HttpWebRequest)WebRequest.Create(twitterSearchUrl); request.Method = "GET"; string output = string.Empty; try { using (var response = request.GetResponse()) { using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252))) { output = stream.ReadToEnd(); } } if (!output.StartsWith("[")) output = "[" + output + "]"; JArray twitterSearchResult = JArray.Parse(output); foreach (var item in twitterSearchResult) { var results = item["results"]; foreach (var chile in results) { try { dissearch.CreatedTime = SocioBoard.Helper.Extensions.ParseAnotherTwitterTime(chile["created_at"].ToString().TrimStart('"').TrimEnd('"')); ; dissearch.EntryDate = DateTime.Now; dissearch.FromId = chile["from_user_id_str"].ToString().TrimStart('"').TrimEnd('"'); dissearch.FromName = chile["from_user_name"].ToString().TrimStart('"').TrimEnd('"'); dissearch.ProfileImageUrl = chile["profile_image_url"].ToString().TrimStart('"').TrimEnd('"'); dissearch.SearchKeyword = txtSearchText.Text; dissearch.Network = "twitter"; dissearch.Message = chile["text"].ToString().TrimStart('"').TrimEnd('"'); dissearch.MessageId = chile["id_str"].ToString().TrimStart('"').TrimEnd('"'); dissearch.Id = Guid.NewGuid(); dissearch.UserId = user.Id; if (!dissearchrepo.isKeywordPresent(dissearch.SearchKeyword, dissearch.MessageId)) { dissearchrepo.addNewSearchResult(dissearch); } searchRes += this.BindData(dissearch, i); i++; } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } } } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } #endregion #region FacebookSearch try { int j = 0; string facebookSearchUrl = "https://graph.facebook.com/search?q= " + txtSearchText.Text + " &type=post"; var facerequest = (HttpWebRequest)WebRequest.Create(facebookSearchUrl); facerequest.Method = "GET"; string outputface = string.Empty; using (var response = facerequest.GetResponse()) { using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252))) { outputface = stream.ReadToEnd(); } } if (!outputface.StartsWith("[")) outputface = "[" + outputface + "]"; JArray facebookSearchResult = JArray.Parse(outputface); foreach (var item in facebookSearchResult) { var data = item["data"]; foreach (var chile in data) { try { dissearch.CreatedTime = DateTime.Parse(chile["created_time"].ToString()); dissearch.EntryDate = DateTime.Now; dissearch.FromId = chile["from"]["id"].ToString(); dissearch.FromName = chile["from"]["name"].ToString(); dissearch.ProfileImageUrl = "http://graph.facebook.com/" + chile["from"]["id"] + "/picture?type=small"; dissearch.SearchKeyword = txtSearchText.Text; dissearch.Network = "facebook"; dissearch.Message = chile["message"].ToString(); dissearch.MessageId = chile["id"].ToString(); dissearch.Id = Guid.NewGuid(); dissearch.UserId = user.Id; if (!dissearchrepo.isKeywordPresent(dissearch.SearchKeyword, dissearch.MessageId)) { dissearchrepo.addNewSearchResult(dissearch); } searchRes += this.BindData(dissearch, i); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } } } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } #endregion } else { foreach (DiscoverySearch item in discoveryList) { searchRes += this.BindData(item, i); i++; } } searchresults.InnerHtml = searchRes; } }