public DisplayTweetsViewModel GetTweetResults(TweetQueryModel query)
        {
            List <Tweet> tweets = new List <Tweet>();

            if (query.QueryType.ToLower() == "search")
            {
                tweets = _tweetData.FindBySearch(query.OriginalQuery);
            }
            else if (query.QueryType.ToLower() == "tag")
            {
                List <string> tags = _tagData.GetAllTags();

                if (!tags.Contains(query.OriginalQuery))
                {
                    return(null);
                }
                else
                {
                    tweets = _tweetData.FindByTag(query.OriginalQuery);
                }
            }
            else
            {
                return(null);
            }

            if (tweets == null)
            {
                return(null);
            }
            else
            {
                List <TweetsByOfficial> originalResults = _tweetsByOfficial.MatchTweetsToOfficial(tweets);

                var pageNumber = query.Page ?? 1;

                var onePageOfTweets = originalResults.SelectMany(x => x.Tweets)
                                      .OrderByDescending(tweet => tweet.Created)
                                      .ToList()
                                      .ToPagedList(pageNumber, 24);

                TweetFilter             filter  = new TweetFilter();
                List <TweetsByOfficial> results = filter.FilterResults(originalResults, query.FilterOptions);

                onePageOfTweets = results.SelectMany(x => x.Tweets)
                                  .OrderByDescending(tweet => tweet.Created)
                                  .ToList()
                                  .ToPagedList(pageNumber, 24);

                var model = new DisplayTweetsViewModel();
                model.QueryType       = query.QueryType;
                model.Tweets          = onePageOfTweets;
                model.OriginalQuery   = query.OriginalQuery;
                model.FiltersSelected = query.FilterOptions;
                model.ResultInfo      = new ResultInfo(originalResults);

                return(model);
            }
        }
        public IActionResult Index()
        {
            HomeIndexViewModel model = new HomeIndexViewModel();

            model.Tags = _tags.GetAllTags();
            model.TweetQueryInputModel = new TweetQueryInputModel();

            return(View(model));
        }
Example #3
0
    public static Activity StartActivityWithTags(this ActivitySource activitySource, string operationName, ITags tags)
    {
        var activity = activitySource.StartActivity(operationName);

        // Apply tags
        if (tags != null)
        {
            foreach (var entry in tags.GetAllTags())
            {
                activity.SetTag(entry.Key, entry.Value);
            }
        }

        return(activity);
    }
 public Results GetTagList()
 {
     try
     {
         results.Result       = tags.GetAllTags();
         results.Code         = 0;
         results.ErrorMessage = string.Empty;
     }
     catch (Exception ex)
     {
         logger.LogError(ex.Message);
         results.Code         = 1;
         results.ErrorMessage = ex.Message;
     }
     return(results);
 }