Esempio n. 1
0
        public Task <ITwitterResult <IIdsCursorQueryResultDTO> > GetFollowerIds(IGetFollowerIdsParameters parameters, ITwitterRequest request)
        {
            var query = _userQueryGenerator.GetFollowerIdsQuery(parameters);

            request.Query.Url        = query;
            request.Query.HttpMethod = HttpMethod.GET;

            return(_twitterAccessor.ExecuteRequest <IIdsCursorQueryResultDTO>(request));
        }
        public void Validate(IGetFollowerIdsParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            _userQueryValidator.ThrowIfUserCannotBeIdentified(parameters.User, $"{nameof(parameters.User)}");
        }
Esempio n. 3
0
        public string GetFollowerIdsQuery(IGetFollowerIdsParameters parameters)
        {
            var query = new StringBuilder(Resources.User_GetFollowers);

            query.AddFormattedParameterToQuery(_userQueryParameterGenerator.GenerateIdOrScreenNameParameter(parameters.User));
            _queryParameterGenerator.AppendCursorParameters(query, parameters);
            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            return(query.ToString());
        }
Esempio n. 4
0
        public GetFollowerIdsParameters(IGetFollowerIdsParameters parameters) : base(parameters)
        {
            if (parameters == null)
            {
                PageSize = TwitterLimits.DEFAULTS.USERS_GET_FOLLOWER_IDS_PAGE_MAX_SIZE;
                return;
            }

            User = parameters.User;
        }
        public void Validate(IGetFollowerIdsParameters parameters)
        {
            _usersClientRequiredParametersValidator.Validate(parameters);

            var maxPageSize = Limits.USERS_GET_FOLLOWER_IDS_PAGE_MAX_SIZE;

            if (parameters.PageSize > maxPageSize)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.PageSize)}", maxPageSize, nameof(Limits.USERS_GET_FOLLOWER_IDS_PAGE_MAX_SIZE), "page size");
            }
        }
Esempio n. 6
0
 public void Validate(IGetFollowerIdsParameters parameters)
 {
     _usersClientParametersValidator.Validate(parameters);
 }
Esempio n. 7
0
        public ITwitterIterator <long> GetFollowerIdsIterator(IGetFollowerIdsParameters parameters)
        {
            var followerIdsPageIterator = _usersRequester.GetFollowerIdsIterator(parameters);

            return(new TwitterIteratorProxy <ITwitterResult <IIdsCursorQueryResultDTO>, long>(followerIdsPageIterator, dto => dto.DataTransferObject.Ids));
        }
Esempio n. 8
0
        public async Task <long[]> GetFollowerIds(IGetFollowerIdsParameters parameters)
        {
            var iterator = GetFollowerIdsIterator(parameters);

            return((await iterator.NextPage().ConfigureAwait(false)).ToArray());
        }
Esempio n. 9
0
        public ITwitterPageIterator <ITwitterResult <IIdsCursorQueryResultDTO> > GetFollowerIdsIterator(IGetFollowerIdsParameters parameters)
        {
            _validator.Validate(parameters);

            var request = TwitterClient.CreateRequest();

            request.ExecutionContext.Converters = JsonQueryConverterRepository.Converters;
            return(_userController.GetFollowerIdsIterator(parameters, request));
        }
Esempio n. 10
0
        public ITwitterPageIterator <ITwitterResult <IIdsCursorQueryResultDTO> > GetFollowerIdsIterator(IGetFollowerIdsParameters parameters, ITwitterRequest request)
        {
            var twitterCursorResult = new TwitterPageIterator <ITwitterResult <IIdsCursorQueryResultDTO> >(
                parameters.Cursor,
                cursor =>
            {
                var cursoredParameters = new GetFollowerIdsParameters(parameters)
                {
                    Cursor = cursor
                };

                return(_userQueryExecutor.GetFollowerIds(cursoredParameters, new TwitterRequest(request)));
            },
                page => page.DataTransferObject.NextCursorStr,
                page => page.DataTransferObject.NextCursorStr == "0");

            return(twitterCursorResult);
        }