コード例 #1
0
        // Favorite Tweet
        public Task <ITwitterResult <ITweetDTO[]> > GetFavoriteTweetsAsync(IGetUserFavoriteTweetsParameters parameters, ITwitterRequest request)
        {
            var query = _tweetQueryGenerator.GetFavoriteTweetsQuery(parameters, request.ExecutionContext.TweetMode);

            request.Query.Url        = query;
            request.Query.HttpMethod = HttpMethod.GET;
            return(_twitterAccessor.ExecuteRequestAsync <ITweetDTO[]>(request));
        }
コード例 #2
0
        public void Validate(IGetUserFavoriteTweetsParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            _userQueryValidator.ThrowIfUserCannotBeIdentified(parameters.User, $"{nameof(parameters)}.{nameof(parameters.User)}");
        }
コード例 #3
0
ファイル: TweetsClient.cs プロジェクト: tinsoldier/tweetinvi
        public ITwitterIterator <ITweet, long?> GetUserFavoriteTweetsIterator(IGetUserFavoriteTweetsParameters parameters)
        {
            var favoriteTweetsIterator = _tweetsRequester.GetUserFavoriteTweetsIterator(parameters);

            return(new TwitterIteratorProxy <ITwitterResult <ITweetDTO[]>, ITweet, long?>(favoriteTweetsIterator,
                                                                                          twitterResult =>
            {
                return twitterResult.Model.Select(x => _client.Factories.CreateTweet(x)).ToArray();
            }));
        }
コード例 #4
0
        public void Validate(IGetUserFavoriteTweetsParameters parameters)
        {
            _tweetsClientRequiredParametersValidator.Validate(parameters);

            var maxPageSize = Limits.TWEETS_GET_FAVORITE_TWEETS_MAX_SIZE;

            if (parameters.PageSize > maxPageSize)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.PageSize)}", maxPageSize, nameof(Limits.TWEETS_GET_FAVORITE_TWEETS_MAX_SIZE), "page size");
            }
        }
コード例 #5
0
        public GetUserFavoriteTweetsParameters(IGetUserFavoriteTweetsParameters source) : base(source)
        {
            if (source == null)
            {
                PageSize = TwitterLimits.DEFAULTS.TWEETS_GET_FAVORITE_TWEETS_MAX_SIZE;
                return;
            }

            User            = source.User;
            IncludeEntities = source.IncludeEntities;
        }
コード例 #6
0
        public string GetFavoriteTweetsQuery(IGetUserFavoriteTweetsParameters parameters, ComputedTweetMode tweetMode)
        {
            var userParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(parameters.User);
            var query         = new StringBuilder(Resources.User_GetFavorites + userParameter);

            query.AddParameterToQuery("include_entities", parameters.IncludeEntities);
            _queryParameterGenerator.AddMinMaxQueryParameters(query, parameters);

            query.AddParameterToQuery("tweet_mode", tweetMode);
            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            return(query.ToString());
        }
コード例 #7
0
 public void Validate(IGetUserFavoriteTweetsParameters parameters)
 {
     _tweetsClientParametersValidator.Validate(parameters);
 }
コード例 #8
0
ファイル: TweetController.cs プロジェクト: anilerol/tweetinvi
        // Favorite Tweet
        public ITwitterPageIterator <ITwitterResult <ITweetDTO[]>, long?> GetFavoriteTweetsIterator(IGetUserFavoriteTweetsParameters parameters, ITwitterRequest request)
        {
            return(_pageCursorIteratorFactories.Create(parameters, cursor =>
            {
                var cursoredParameters = new GetUserFavoriteTweetsParameters(parameters)
                {
                    MaxId = cursor
                };

                return _tweetQueryExecutor.GetFavoriteTweets(cursoredParameters, new TwitterRequest(request));
            }));
        }
コード例 #9
0
        public ITwitterPageIterator <ITwitterResult <ITweetDTO[]>, long?> GetUserFavoriteTweetsIterator(IGetUserFavoriteTweetsParameters parameters)
        {
            _tweetsClientRequiredParametersValidator.Validate(parameters);
            var request = TwitterClient.CreateRequest();

            return(_tweetController.GetFavoriteTweetsIterator(parameters, request));
        }
コード例 #10
0
ファイル: TweetsClient.cs プロジェクト: tinsoldier/tweetinvi
        public async Task <ITweet[]> GetUserFavoriteTweetsAsync(IGetUserFavoriteTweetsParameters parameters)
        {
            var iterator = GetUserFavoriteTweetsIterator(parameters);

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