public async Task <MessagesQueryResult> GetNumberAsync(int number, string hashtag)
        {
            var searchParameter = new SearchTweetsParameters(hashtag)
            {
                MaximumNumberOfResults = number
            };

            IEnumerable <ITweet> tweets = await SearchAsync.SearchTweets(searchParameter);

            TwitterMessageResultMapper mapper = new TwitterMessageResultMapper();

            return(mapper.MapBunch(tweets));
        }
        public async Task <MessagesQueryResult> GetSinceLastIdAsync(long id, string hashtag)
        {
            var searchParameter = new SearchTweetsParameters(hashtag)
            {
                SinceId = id
            };

            IEnumerable <ITweet> tweets = await SearchAsync.SearchTweets(searchParameter);

            TwitterMessageResultMapper mapper = new TwitterMessageResultMapper();

            return(mapper.MapBunch(tweets));
        }
        public async Task <IQueryResult> GetAllAsync(HashTagWord hashtag)
        {
            ISearchTweetsParameters tweetsParameters = new SearchTweetsParameters(hashtag.TagWithHash);

            tweetsParameters.TweetSearchType = TweetSearchType.OriginalTweetsOnly;
            IEnumerable <ITweet> tweets = await SearchAsync.SearchTweets(tweetsParameters);

            var fail = ExceptionHandler.GetLastException()?.TwitterDescription;

            if (!String.IsNullOrEmpty(fail))
            {
                logger.LogError(
                    LoggingEvents.EXCEPTION_GET_TWITTER_MESSAGE,
                    "Failed to get messages by {hashtag} with {error}",
                    hashtag,
                    fail);
            }
            var mapper = new TwitterMessageResultMapper();

            return(mapper.MapBunch(tweets));
        }