public JsonResult SearchResults(string parameters, string searchEngines, string sentiment, string socialNetworking, string userName) { var result = new List <Post>(); var model = new SearchResultModel(); if (ModelState.IsValid) { var searchEngineManager = new SearchEngineManager(); result = searchEngineManager.Search(parameters, searchEngines.Split(',').ToList()); result = result.OrderByDescending(o => o.CreatedAt).ToList(); if (result.Count > 0) { GetAllWords(); var sentimentValuator = new SentimentValuator { NegativeWords = negativeWords, PositiveWords = positiveWords, IgnoreChars = ignoreList }; foreach (var item in result) { sentimentValuator.ProcessItem(item); if (string.IsNullOrEmpty(sentiment) && string.IsNullOrEmpty(socialNetworking) && string.IsNullOrEmpty(userName)) { model.Items.Add(item); } else if (ValidateFilters(sentiment, socialNetworking, userName, item)) { model.Items.Add(item); } } sentimentValuator.ResetCounters(); foreach (var item in model.Items) { sentimentValuator.ProcessItem(item); } BuildSentimentBox(model, sentimentValuator); BuildEnginesBox(model); BuildTopUsersBox(model); } } return(Json(model, JsonRequestBehavior.AllowGet)); }
private void StartSearch(QueryDef query) { _logger.Info("\n\n====== START SEARCH " + DateTime.Now + " ======\n\n"); //Por cada red social a la que apunta la query foreach (var searchEngineName in query.SearchEnginesNamesList) { _logger.Info("\n\n====== START SEARCH FOR (" + searchEngineName + ") " + DateTime.Now + " ======\n\n"); var postsResult = _searchEngineManager.Search(query.Query, new List <string> { searchEngineName }, ParamAccess.ISOLocationCountry, ParamAccess.ISOLanguageCode); foreach (var post in postsResult) { if (_serviceManager.ExistPost(post.UrlPost)) { continue; } _sentimentValuator.ProcessItem(post); post.QueryDef = query; _serviceManager.SavePost(post); } _logger.Info("\n\n===" + postsResult.Count + " POSTs FOUND IN " + searchEngineName + "\n"); } _logger.Info("\n\n====== END QUERY SEARCH " + DateTime.Now + " ======\n\n"); _logger.Info("\n\n====== WAITING FOR ANOTHER TIME ELAPSE ======\n\n"); }