public async Task <ActionResult> TwitterSearchAsync(string query, int maxNumberOfResults, int dataSourceId) { TwitterAdapter.ConsumerKey = System.Web.HttpContext.Current.Application["TwitterConsumerKey"].ToString(); TwitterAdapter.ConsumerSecret = System.Web.HttpContext.Current.Application["TwitterConsumerSecret"].ToString(); var results = await TwitterAdapter.SearchAsync(query, maxNumberOfResults); var json = JsonConvert.SerializeObject(results); DEV_DB_LICEntities2 db = new DEV_DB_LICEntities2(); UserSearch usearch = new UserSearch() { QueryText = query, DataSourceId = dataSourceId, JsonResult = json, CreatedOn = DateTime.Now }; db.UserSearches.Add(usearch); /*var model = new TwitterSearch() { Query = query, ResultsXml = results };*/ db.SaveChanges(); db.Database.ExecuteSqlCommand("usp_ImportTweetsBySearchId @param1", new SqlParameter("param1", usearch.Id)); var resultsList = db.SearchResults.Where(r => r.UserSearchId == usearch.Id); List <TweetSentiment> tweetSentiments = new List <TweetSentiment>(); foreach (var r in resultsList) { tweetSentiments.Add(new TweetSentiment(r.Id.ToString(), r.TweetText)); } string apiKey = System.Web.HttpContext.Current.Application["CognitiveServicesKey"].ToString(); var sentimentResults = await SentimentAnalyzer.AnalyzeAsync(tweetSentiments, apiKey); foreach (var s in sentimentResults) { var recordToUpdate = db.SearchResults.SingleOrDefault(r => r.Id.ToString() == s.Id); if (recordToUpdate != null) { recordToUpdate.Score = s.Score; recordToUpdate.KeyPhrases = s.KeyPhrases; } } db.SaveChanges(); return(this.RedirectToAction("Details", "UserSearches", new { id = usearch.Id })); }