예제 #1
0
 public void Validate(IGetRetweeterIdsParameters parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException(nameof(parameters));
     }
 }
예제 #2
0
        public Task <ITwitterResult <IIdsCursorQueryResultDTO> > GetRetweeterIds(IGetRetweeterIdsParameters parameters, ITwitterRequest request)
        {
            var query = _tweetQueryGenerator.GetRetweeterIdsQuery(parameters);

            request.Query.Url        = query;
            request.Query.HttpMethod = HttpMethod.GET;
            return(_twitterAccessor.ExecuteRequest <IIdsCursorQueryResultDTO>(request));
        }
예제 #3
0
        public GetRetweeterIdsParameters(IGetRetweeterIdsParameters source) : base(source)
        {
            if (source == null)
            {
                PageSize = TwitterLimits.DEFAULTS.TWEETS_GET_RETWEETER_IDS_MAX_PAGE_SIZE;
                return;
            }

            Tweet = source.Tweet;
        }
예제 #4
0
        public void Validate(IGetRetweeterIdsParameters parameters)
        {
            _tweetsClientRequiredParametersValidator.Validate(parameters);

            var maxPageSize = Limits.TWEETS_GET_RETWEETER_IDS_MAX_PAGE_SIZE;

            if (parameters.PageSize > maxPageSize)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.PageSize)}", maxPageSize, nameof(Limits.TWEETS_GET_RETWEETER_IDS_MAX_PAGE_SIZE), "page size");
            }
        }
예제 #5
0
        public string GetRetweeterIdsQuery(IGetRetweeterIdsParameters parameters)
        {
            var query = new StringBuilder(Resources.Tweet_GetRetweeters);

            query.AddParameterToQuery("id", GetTweetId(parameters.Tweet));
            _queryParameterGenerator.AppendCursorParameters(query, parameters);

            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            return(query.ToString());
        }
예제 #6
0
 public void Validate(IGetRetweeterIdsParameters parameters)
 {
     _tweetsClientParametersValidator.Validate(parameters);
 }
예제 #7
0
        public ITwitterPageIterator <ITwitterResult <IIdsCursorQueryResultDTO> > GetRetweeterIdsIterator(IGetRetweeterIdsParameters parameters, ITwitterRequest request)
        {
            return(_pageCursorIteratorFactories.Create(parameters, cursor =>
            {
                var cursoredParameters = new GetRetweeterIdsParameters(parameters)
                {
                    Cursor = cursor
                };

                return _tweetQueryExecutor.GetRetweeterIds(cursoredParameters, new TwitterRequest(request));
            }));
        }
예제 #8
0
        public ITwitterPageIterator <ITwitterResult <IIdsCursorQueryResultDTO> > GetRetweeterIdsIterator(IGetRetweeterIdsParameters parameters)
        {
            _tweetsClientRequiredParametersValidator.Validate(parameters);
            var request = TwitterClient.CreateRequest();

            request.ExecutionContext.Converters = JsonQueryConverterRepository.Converters;
            return(_tweetController.GetRetweeterIdsIterator(parameters, request));
        }
예제 #9
0
        public ITwitterIterator <long> GetRetweeterIdsIterator(IGetRetweeterIdsParameters parameters)
        {
            var twitterResultIterator = _tweetsRequester.GetRetweeterIdsIterator(parameters);

            return(new TwitterIteratorProxy <ITwitterResult <IIdsCursorQueryResultDTO>, long>(twitterResultIterator, dto => dto.Model.Ids));
        }
예제 #10
0
        public async Task <long[]> GetRetweeterIdsAsync(IGetRetweeterIdsParameters parameters)
        {
            var iterator = GetRetweeterIdsIterator(parameters);

            return((await iterator.NextPageAsync().ConfigureAwait(false)).ToArray());
        }