public string GetSearchTweetsQuery(ITweetSearchParameters tweetSearchParameters)
        {
            if (!_searchQueryValidator.IsSearchParameterValid(tweetSearchParameters) ||
                !_searchQueryValidator.IsSearchQueryValid(tweetSearchParameters.SearchQuery))
            {
                return(null);
            }

            StringBuilder query = new StringBuilder();

            query.Append(_searchQueryParameterGenerator.GenerateSearchQueryParameter(tweetSearchParameters.SearchQuery));
            query.Append(_searchQueryParameterGenerator.GenerateSearchTypeParameter(tweetSearchParameters.SearchType));

            query.Append(_queryParameterGenerator.GenerateSinceIdParameter(tweetSearchParameters.SinceId));
            query.Append(_queryParameterGenerator.GenerateMaxIdParameter(tweetSearchParameters.MaxId));
            query.Append(_queryParameterGenerator.GenerateCountParameter(tweetSearchParameters.MaximumNumberOfResults));

            query.Append(_searchQueryParameterGenerator.GenerateGeoCodeParameter(tweetSearchParameters.GeoCode));
            query.Append(_searchQueryParameterGenerator.GenerateLangParameter(tweetSearchParameters.Lang));
            query.Append(_searchQueryParameterGenerator.GenerateLocaleParameter(tweetSearchParameters.Locale));
            query.Append(_searchQueryParameterGenerator.GenerateSinceParameter(tweetSearchParameters.Since));
            query.Append(_searchQueryParameterGenerator.GenerateUntilParameter(tweetSearchParameters.Until));

            return(query.ToString());
        }
        public string GetSearchTweetsQuery(ITweetSearchParameters tweetSearchParameters)
        {
            if (tweetSearchParameters == null ||
                !_searchQueryValidator.IsSearchParameterValid(tweetSearchParameters) ||
                !_searchQueryValidator.IsSearchQueryValid(tweetSearchParameters.SearchQuery))
            {
                return(null);
            }

            var           formattedQuery = _twitterStringFormatter.TwitterEncode(tweetSearchParameters.SearchQuery);
            StringBuilder query          = new StringBuilder(String.Format(Resources.Search_SearchTweets, formattedQuery));

            query.Append(String.Format(Resources.SearchParameter_ResultType, tweetSearchParameters.SearchType));

            if (_searchQueryValidator.IsGeoCodeValid(tweetSearchParameters.GeoCode))
            {
                string latitude  = tweetSearchParameters.GeoCode.Coordinates.Latitude.ToString(CultureInfo.InvariantCulture);
                string longitude = tweetSearchParameters.GeoCode.Coordinates.Longitude.ToString(CultureInfo.InvariantCulture);
                string radius    = tweetSearchParameters.GeoCode.Radius.ToString(CultureInfo.InvariantCulture);
                string measure   = tweetSearchParameters.GeoCode.DistanceMeasure == DistanceMeasure.Kilometers ? "km" : "mi";
                query.Append(String.Format(Resources.SearchParameter_GeoCode, latitude, longitude, radius, measure, CultureInfo.InvariantCulture));
            }

            if (_searchQueryValidator.IsLangDefined(tweetSearchParameters.Lang))
            {
                query.Append(String.Format(Resources.SearchParameter_Lang, tweetSearchParameters.Lang.GetDescriptionAttribute()));
            }

            if (_searchQueryValidator.IsLocaleParameterValid(tweetSearchParameters.Locale))
            {
                query.Append(String.Format(tweetSearchParameters.Locale));
            }

            if (_searchQueryValidator.IsSinceIdDefined(tweetSearchParameters.SinceId))
            {
                query.Append(String.Format(Resources.QueryParameter_SinceId, tweetSearchParameters.SinceId));
            }

            if (_searchQueryValidator.IsMaxIdDefined(tweetSearchParameters.MaxId))
            {
                query.Append(String.Format(Resources.QueryParameter_MaxId, tweetSearchParameters.MaxId));
            }

            if (_searchQueryValidator.IsMaximumNumberOfResultsDefined(tweetSearchParameters.MaximumNumberOfResults))
            {
                query.Append(String.Format(Resources.QueryParameter_Count, tweetSearchParameters.MaximumNumberOfResults));
            }

            if (_searchQueryValidator.IsUntilDefined(tweetSearchParameters.Until))
            {
                query.Append(String.Format(Resources.SearchParameter_Until, tweetSearchParameters.Until.ToString("yyyy-MM-dd")));
            }

            return(query.ToString());
        }
示例#3
0
        public string GetSearchUsersQuery(ISearchUsersParameters searchUsersParameters)
        {
            if (!_searchQueryValidator.IsSearchQueryValid(searchUsersParameters.SearchQuery))
            {
                throw new ArgumentException("Search query is not valid.");
            }

            var queryBuilder = new StringBuilder(Resources.Search_SearchUsers);

            queryBuilder.AddParameterToQuery("q", _searchQueryParameterGenerator.GenerateSearchQueryParameter(searchUsersParameters.SearchQuery));
            queryBuilder.AddParameterToQuery("page", searchUsersParameters.Page);
            queryBuilder.Append(_queryParameterGenerator.GenerateCountParameter(searchUsersParameters.MaximumNumberOfResults));
            queryBuilder.Append(_queryParameterGenerator.GenerateIncludeEntitiesParameter(searchUsersParameters.IncludeEntities));

            return(queryBuilder.ToString());
        }