Пример #1
0
        // FRIENDSHIPS
        public Task <ITwitterResult <IRelationshipStateDTO[]> > GetRelationshipsWith(IGetRelationshipsWithParameters parameters, ITwitterRequest request)
        {
            var query = _userQueryGenerator.GetRelationshipsWithQuery(parameters);

            request.Query.Url        = query;
            request.Query.HttpMethod = HttpMethod.GET;
            return(_twitterAccessor.ExecuteRequest <IRelationshipStateDTO[]>(request));
        }
Пример #2
0
        public string GetRelationshipsWithQuery(IGetRelationshipsWithParameters parameters)
        {
            var query = new StringBuilder(Resources.Friendship_GetRelationships);

            query.AddFormattedParameterToQuery(_userQueryParameterGenerator.GenerateListOfUserIdentifiersParameter(parameters.Users));
            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            return(query.ToString());
        }
        public void Validate(IGetRelationshipsWithParameters parameters)
        {
            _usersClientRequiredParametersValidator.Validate(parameters);

            var maxUsers = Limits.ACCOUNT_GET_RELATIONSHIPS_WITH_MAX_SIZE;

            if (parameters.Users.Length > maxUsers)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.Users)}", maxUsers, nameof(Limits.ACCOUNT_GET_RELATIONSHIPS_WITH_MAX_SIZE), "users");
            }
        }
        public void Validate(IGetRelationshipsWithParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (parameters.Users == null)
            {
                throw new ArgumentNullException($"{nameof(parameters.Users)}");
            }

            if (parameters.Users.All(user => user.Id <= 0 && string.IsNullOrEmpty(user.IdStr) && string.IsNullOrEmpty(user.ScreenName)))
            {
                throw new ArgumentException("At least 1 valid user identifier is required.", $"{nameof(parameters.Users)}");
            }
        }
Пример #5
0
 public void Validate(IGetRelationshipsWithParameters parameters)
 {
     _usersClientParametersValidator.Validate(parameters);
 }
 public GetRelationshipsWithParameters(IGetRelationshipsWithParameters source) : base(source)
 {
     Users = source?.Users;
 }
Пример #7
0
        public async Task <IUserDictionary <IRelationshipState> > GetRelationshipsWith(IGetRelationshipsWithParameters parameters)
        {
            if (parameters.Users == null || parameters.Users.Length == 0)
            {
                return(new UserDictionary <IRelationshipState>());
            }

            var twitterResult = await _usersRequester.GetRelationshipsWith(parameters).ConfigureAwait(false);

            var relationshipsWith = _client.Factories.CreateRelationshipStates(twitterResult?.DataTransferObject);

            var userRelationshipState = new UserDictionary <IRelationshipState>();

            foreach (var user in parameters.Users)
            {
                var userRelationship = relationshipsWith.FirstOrDefault(x => x.TargetId == user.Id || x.TargetScreenName.ToLowerInvariant() == user.ScreenName.ToLowerInvariant());
                if (userRelationship != null)
                {
                    userRelationshipState.AddOrUpdate(user, userRelationship);
                }
            }

            return(userRelationshipState);
        }
Пример #8
0
 // FRIENDSHIPS
 public Task <ITwitterResult <IRelationshipStateDTO[]> > GetRelationshipsWith(IGetRelationshipsWithParameters parameters)
 {
     _validator.Validate(parameters);
     return(ExecuteRequest(request => _userController.GetRelationshipsWith(parameters, request)));
 }
Пример #9
0
        // FRIENDSHIP

        public Task <ITwitterResult <IRelationshipStateDTO[]> > GetRelationshipsWith(IGetRelationshipsWithParameters parameters, ITwitterRequest request)
        {
            return(_userQueryExecutor.GetRelationshipsWith(parameters, request));
        }