public ITwitterListUpdateQueryParameters CreateTwitterListUpdateQueryParameters(
            ITwitterListIdentifier listIdentifier,
            ITwitterListUpdateParameters listUpdateParameters)
        {
            var identifierParameter = TweetinviFactory.CreateConstructorParameter("listIdentifier", listIdentifier);
            var queryParameter = TweetinviFactory.CreateConstructorParameter("queryParameters", listUpdateParameters);

            return _updateTwitterListQueryParametersFactory.Create(identifierParameter, queryParameter);
        }
        public IGetTweetsFromListQueryParameters CreateTweetsFromListQueryParameters(
            ITwitterListIdentifier listIdentifier,
            IGetTweetsFromListParameters getTweetsFromListParameters)
        {
            var identifierParameter = TweetinviFactory.CreateConstructorParameter("listIdentifier", listIdentifier);
            var queryParameter = TweetinviFactory.CreateConstructorParameter("queryParameters", getTweetsFromListParameters);

            return _tweetsFromListQueryParametersFactory.Create(identifierParameter, queryParameter);
        }
        public string GetListByIdQuery(ITwitterListIdentifier twitterListIdentifier)
        {
            if (!_listsQueryValidator.IsListIdentifierValid(twitterListIdentifier))
            {
                return null;
            }

            var identifierParameter = _listQueryParameterGenerator.GenerateIdentifierParameter(twitterListIdentifier);
            return string.Format(Resources.List_GetExistingList, identifierParameter);
        }
        public ITwitterList GetExistingList(ITwitterListIdentifier identifier)
        {
            if (identifier == null)
            {
                return null;
            }

            var listDTO = _twitterListFactoryQueryExecutor.GetExistingList(identifier);
            return CreateListFromDTO(listDTO);
        }
예제 #5
0
        public void ThrowIfListIdentifierIsNotValid(ITwitterListIdentifier twitterListIdentifier)
        {
            if (twitterListIdentifier == null)
            {
                throw new ArgumentNullException("List identifier cannot be null.");
            }

            if (twitterListIdentifier.Id == TweetinviSettings.DEFAULT_ID)
            {
                throw new ArgumentException("List id must be set.");
            }
        }
예제 #6
0
        public bool IsListIdentifierValid(ITwitterListIdentifier twitterListIdentifier)
        {
            if (twitterListIdentifier == null)
            {
                return false;
            }

            if (twitterListIdentifier.Id != TweetinviSettings.DEFAULT_ID)
            {
                return true;
            }

            bool isOwnerIdentifierValid = IsOwnerIdValid(twitterListIdentifier.OwnerId) || IsOwnerScreenNameValid(twitterListIdentifier.OwnerScreenName);
            return IsSlugValid(twitterListIdentifier.Slug) && isOwnerIdentifierValid;
        }
예제 #7
0
        public MultiRequestsResult AddMultipleMembersToList(ITwitterListIdentifier listIdentifier, IEnumerable<IUserIdentifier> userIdentifiers)
        {
            var userIdentifiersArray = IEnumerableExtension.GetDistinctUserIdentifiers(userIdentifiers);

            for (int i = 0; i < userIdentifiersArray.Length; i += TweetinviConsts.LIST_ADD_OR_REMOVE_MULTIPLE_MEMBERS_MAX)
            {
                var userIdentifiersToAdd = userIdentifiersArray.Skip(i).Take(TweetinviConsts.LIST_ADD_OR_REMOVE_MULTIPLE_MEMBERS_MAX).ToArray();
                var query = _listsQueryGenerator.GetAddMultipleMembersToListQuery(listIdentifier, userIdentifiersToAdd);

                if (!_twitterAccessor.TryExecutePOSTQuery(query))
                {
                    return i > 0 ? MultiRequestsResult.Partial : MultiRequestsResult.Failure;
                }
            }

            return MultiRequestsResult.Success;
        }
        public string GenerateIdentifierParameter(ITwitterListIdentifier twitterListIdentifier)
        {
            if (twitterListIdentifier.Id != TweetinviSettings.DEFAULT_ID)
            {
                return string.Format(Resources.List_ListIdParameter, twitterListIdentifier.Id.ToString(CultureInfo.InvariantCulture));
            }

            string ownerIdentifier;
            if (_userQueryValidator.IsUserIdValid(twitterListIdentifier.OwnerId))
            {
                ownerIdentifier = string.Format(Resources.List_OwnerIdParameter, twitterListIdentifier.OwnerId.ToString(CultureInfo.InvariantCulture));
            }
            else
            {
                ownerIdentifier = string.Format(Resources.List_OwnerScreenNameParameter, twitterListIdentifier.OwnerScreenName);
            }

            var slugParameter = string.Format(Resources.List_SlugParameter, twitterListIdentifier.Slug);

            return string.Format("{0}{1}", slugParameter, ownerIdentifier);
        }
예제 #9
0
 /// <summary>
 /// Get tweets displayed in a specific list
 /// </summary>
 public static IEnumerable<ITweet> GetTweetsFromList(ITwitterListIdentifier list, IGetTweetsFromListParameters parameters = null)
 {
     return TwitterListController.GetTweetsFromList(list, parameters);
 }
예제 #10
0
        /// <summary>
        /// Unubscribe the authenticated user to a specific list
        /// </summary>
        public static bool UnSubscribeLoggedUserFromList(ITwitterListIdentifier listIdentifier, ILoggedUser loggedUser = null)
        {
            if (loggedUser != null)
            {
                return loggedUser.UnSubscribeFromList(listIdentifier);
            }

            return TwitterListController.UnSubscribeLoggedUserFromList(listIdentifier);
        }
예제 #11
0
        // Update List

        /// <summary>
        /// Update a list
        /// </summary>
        public static ITwitterList UpdateList(ITwitterListIdentifier twitterListIdentifier, ITwitterListUpdateParameters parameters)
        {
            return TwitterListController.UpdateList(twitterListIdentifier, parameters);
        }
예제 #12
0
 public TwitterListParameters(ITwitterListIdentifier list)
 {
     List = list;
 }
예제 #13
0
 public bool DestroyList(ITwitterListIdentifier list)
 {
     return(_twitterListQueryExecutor.DestroyList(list));
 }
예제 #14
0
 /// <summary>
 /// Remove a member from a list
 /// </summary>
 public static bool RemoveMemberFromList(ITwitterListIdentifier list, string userName)
 {
     return TwitterListController.RemoveMemberFromList(list, userName);
 }
예제 #15
0
 /// <summary>
 /// Check if a user is a member of a specific list
 /// </summary>
 public static bool CheckIfUserIsAListMember(ITwitterListIdentifier list, string newUserName)
 {
     return TwitterListController.CheckIfUserIsAListMember(list, newUserName);
 }
예제 #16
0
 public bool RemoveMemberFromList(ITwitterListIdentifier list, IUserIdentifier newUser)
 {
     return(_twitterListQueryExecutor.RemoveMemberFromList(list, newUser));
 }
예제 #17
0
        public MultiRequestsResult RemoveMultipleMembersFromList(ITwitterListIdentifier list, IEnumerable <long> userIds)
        {
            var users = userIds.Select(userId => _userFactory.GenerateUserIdentifierFromId(userId));

            return(RemoveMultipleMembersFromList(list, users));
        }
예제 #18
0
        public bool RemoveMemberFromList(ITwitterListIdentifier list, long newUserId)
        {
            var user = _userFactory.GenerateUserIdentifierFromId(newUserId);

            return(RemoveMemberFromList(list, user));
        }
예제 #19
0
        public bool RemoveMemberFromList(ITwitterListIdentifier list, string newUserName)
        {
            var user = _userFactory.GenerateUserIdentifierFromScreenName(newUserName);

            return(RemoveMemberFromList(list, user));
        }
예제 #20
0
 public MultiRequestsResult AddMultipleMembersToList(ITwitterListIdentifier list, IEnumerable <IUserIdentifier> newUserIdentifiers)
 {
     return(_twitterListQueryExecutor.AddMultipleMembersToList(list, newUserIdentifiers));
 }
예제 #21
0
 public bool AddMemberToList(ITwitterListIdentifier list, IUserIdentifier newUser)
 {
     return(_twitterListQueryExecutor.AddMemberToList(list, newUser));
 }
예제 #22
0
        public IEnumerable <ITweet> GetTweetsFromList(ITwitterListIdentifier list, IGetTweetsFromListParameters parameters = null)
        {
            var queryParameters = _twitterListQueryParameterGenerator.CreateTweetsFromListQueryParameters(list, parameters);

            return(GetTweetsFromList(queryParameters));
        }
예제 #23
0
 /// <summary>
 /// Add a user to become a member of the list
 /// </summary>
 public static bool AddMemberToList(ITwitterListIdentifier list, string newUserName)
 {
     return TwitterListController.AddMemberToList(list, newUserName);
 }
예제 #24
0
        public MultiRequestsResult RemoveMultipleMembersFromList(ITwitterListIdentifier list, IEnumerable <string> userScreenNames)
        {
            var users = userScreenNames.Select(screenName => _userFactory.GenerateUserIdentifierFromScreenName(screenName));

            return(RemoveMultipleMembersFromList(list, users));
        }
예제 #25
0
 /// <summary>
 /// Add multiple users to become members of the list
 /// </summary>
 public static MultiRequestsResult AddMultipleMembersToList(ITwitterListIdentifier list, IEnumerable<string> newUserScreenNames)
 {
     return TwitterListController.AddMultipleMembersToList(list, newUserScreenNames);
 }
 public GetMembersOfListParameters(ITwitterListIdentifier list) : base(list)
 {
     PageSize = TwitterLimits.DEFAULTS.LISTS_GET_MEMBERS_MAX_PAGE_SIZE;
 }
예제 #27
0
 /// <summary>
 /// Remove a member from a list
 /// </summary>
 public static bool RemoveMemberFromList(ITwitterListIdentifier list, IUserIdentifier user)
 {
     return TwitterListController.RemoveMemberFromList(list, user);
 }
 public UnsubscribeFromListParameters(ITwitterListIdentifier list) : base(list)
 {
 }
예제 #29
0
 public Task <ITwitterList> UnsubscribeFromListAsync(ITwitterListIdentifier list)
 {
     return(Client.Lists.UnsubscribeFromListAsync(list));
 }
예제 #30
0
 // Twitter Lists
 public Task <ITwitterList> SubscribeToListAsync(ITwitterListIdentifier list)
 {
     return(Client.Lists.SubscribeToListAsync(list));
 }
        public string GetRemoveMultipleMembersFromListQuery(ITwitterListIdentifier listIdentifier, IEnumerable<IUserIdentifier> userIdentifiers)
        {
            if (userIdentifiers == null)
            {
                return null;
            }

            string userIdsAndScreenNameParameter = _userQueryParameterGenerator.GenerateListOfUserIdentifiersParameter(userIdentifiers);
            return string.Format("https://api.twitter.com/1.1/lists/members/destroy_all.json?{0}", userIdsAndScreenNameParameter);
        }
예제 #32
0
        public ITwitterList UpdateList(ITwitterListIdentifier list, ITwitterListUpdateParameters parameters)
        {
            var queryParameters = _twitterListQueryParameterGenerator.CreateTwitterListUpdateQueryParameters(list, parameters);

            return(UpdateList(queryParameters));
        }
        public string GetListSubscribersQuery(ITwitterListIdentifier listIdentifier, int maximumNumberOfSubscribersToRetrieve)
        {
            if (!_listsQueryValidator.IsListIdentifierValid(listIdentifier))
            {
                return null;
            }

            var identifierParameter = _twitterListQueryParameterGenerator.GenerateIdentifierParameter(listIdentifier);
            return string.Format(Resources.List_GetSubscribers, identifierParameter, maximumNumberOfSubscribersToRetrieve);
        }
        public string GetCheckIfUserIsAListSubscriberQuery(ITwitterListIdentifier listIdentifier, IUserIdentifier userIdentifier)
        {
            if (!_listsQueryValidator.IsListIdentifierValid(listIdentifier) ||
                !_userQueryValidator.CanUserBeIdentified(userIdentifier))
            {
                return null;
            }

            var listIdentifierParameter = _twitterListQueryParameterGenerator.GenerateIdentifierParameter(listIdentifier);
            var userIdentifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(userIdentifier);

            return string.Format("https://api.twitter.com/1.1/lists/subscribers/show.json?{0}&{1}&skip_status=true", listIdentifierParameter, userIdentifierParameter);
        }
예제 #35
0
 public MultiRequestsResult RemoveMultipleMembersFromList(ITwitterListIdentifier list, IEnumerable <IUserIdentifier> users)
 {
     return(_twitterListQueryExecutor.RemoveMultipleMembersFromList(list, users));
 }
 public GetTweetsFromListQueryParameters(ITwitterListIdentifier listIdentifier, IGetTweetsFromListParameters parameters)
 {
     TwitterListIdentifier = listIdentifier;
     Parameters            = parameters;
 }
        public string GetCheckIfUserIsAListMemberQuery(ITwitterListIdentifier listIdentifier, IUserIdentifier userIdentifier)
        {
            if (!_listsQueryValidator.IsListIdentifierValid(listIdentifier) ||
                !_userQueryValidator.CanUserBeIdentified(userIdentifier))
            {
                return null;
            }

            var listIdentifierParameter = _twitterListQueryParameterGenerator.GenerateIdentifierParameter(listIdentifier);
            var userIdentifierParameter = _userQueryParameterGenerator.GenerateIdOrScreenNameParameter(userIdentifier);

            return string.Format(Resources.List_CheckMembership, listIdentifierParameter, userIdentifierParameter);
        }
예제 #38
0
        public IEnumerable <IUser> GetListSubscribers(ITwitterListIdentifier list, int maximumNumberOfUsersToRetrieve = 100)
        {
            var usersDTO = _twitterListQueryExecutor.GetListSubscribers(list, maximumNumberOfUsersToRetrieve);

            return(_userFactory.GenerateUsersFromDTO(usersDTO));
        }
        public string GetUnSubscribeUserFromListQuery(ITwitterListIdentifier listIdentifier)
        {
            if (!_listsQueryValidator.IsListIdentifierValid(listIdentifier))
            {
                return null;
            }

            var listIdentifierParameter = _twitterListQueryParameterGenerator.GenerateIdentifierParameter(listIdentifier);

            return string.Format(Resources.List_UnSubscribe, listIdentifierParameter);
        }
예제 #40
0
 public bool UnSubscribeAuthenticatedUserFromList(ITwitterListIdentifier list)
 {
     return(_twitterListQueryExecutor.UnSubscribeAuthenticatedUserFromList(list));
 }
 public TwitterListUpdateQueryParameters(ITwitterListIdentifier listIdentifier, ITwitterListUpdateParameters parameters)
 {
     TwitterListIdentifier = listIdentifier;
     Parameters = parameters;
 }
예제 #42
0
        public bool CheckIfUserIsAListSubscriber(ITwitterListIdentifier listIdentifier, long userId)
        {
            var user = _userFactory.GenerateUserIdentifierFromId(userId);

            return(CheckIfUserIsAListSubscriber(listIdentifier, user));
        }
예제 #43
0
 /// <summary>
 /// Check if a user is a subscriber of a specific list
 /// </summary>
 public static bool CheckIfUserIsAListSubscriber(ITwitterListIdentifier list, long newUserId)
 {
     return TwitterListController.CheckIfUserIsAListSubscriber(list, newUserId);
 }
예제 #44
0
        public bool CheckIfUserIsAListSubscriber(ITwitterListIdentifier listIdentifier, string userScreenName)
        {
            var user = _userFactory.GenerateUserIdentifierFromScreenName(userScreenName);

            return(CheckIfUserIsAListSubscriber(listIdentifier, user));
        }
예제 #45
0
        // Destroy List

        /// <summary>
        /// Destroy a list
        /// </summary>
        public static bool DestroyList(ITwitterListIdentifier list)
        {
            return TwitterListController.DestroyList(list);
        }
예제 #46
0
 public bool CheckIfUserIsAListSubscriber(ITwitterListIdentifier listIdentifier, IUserIdentifier user)
 {
     return(_twitterListQueryExecutor.CheckIfUserIsAListSubscriber(listIdentifier, user));
 }
예제 #47
0
        // Get Members of List

        /// <summary>
        /// Get the members of a list
        /// </summary>
        public static IEnumerable<IUser> GetMembersOfList(ITwitterListIdentifier list, int maxNumberOfUsersToRetrieve = 100)
        {
            return TwitterListController.GetListMembers(list, maxNumberOfUsersToRetrieve);
        }
 public TwitterListUpdateQueryParameters(ITwitterListIdentifier listIdentifier, ITwitterListUpdateParameters parameters)
 {
     TwitterListIdentifier = listIdentifier;
     Parameters            = parameters;
 }
예제 #49
0
 /// <summary>
 /// Add a user to become a member of the list
 /// </summary>
 public static bool AddMemberToList(ITwitterListIdentifier list, IUserIdentifier newUser)
 {
     return TwitterListController.AddMemberToList(list, newUser);
 }
 public RemoveMembersFromListParameters(ITwitterListIdentifier list, IEnumerable <string> usernames)
     : this(list, usernames.Select(x => new UserIdentifier(x)))
 {
 }
예제 #51
0
 /// <summary>
 /// Add multiple users to become members of the list
 /// </summary>
 public static MultiRequestsResult AddMultipleMembersToList(ITwitterListIdentifier list, IEnumerable<IUserIdentifier> userIdentifiers)
 {
     return TwitterListController.AddMultipleMembersToList(list, userIdentifiers);
 }
 public RemoveMembersFromListParameters(ITwitterListIdentifier list, IEnumerable <IUserIdentifier> users) : base(list)
 {
     Users.AddRange(users);
 }
예제 #53
0
        // Get Existing List

        /// <summary>
        /// Get an existing List
        /// </summary>
        public static ITwitterList GetExistingList(ITwitterListIdentifier twitterListIdentifier)
        {
            return TwitterListFactory.GetExistingList(twitterListIdentifier);
        }
예제 #54
0
 public bool UnSubscribeFromList(ITwitterListIdentifier list)
 {
     return(ExecuteAuthenticatedUserOperation(() => _twitterListController.UnSubscribeAuthenticatedUserFromList(list)));
 }
예제 #55
0
 /// <summary>
 /// Remove multiple members from a list
 /// </summary>
 public static MultiRequestsResult RemoveMultipleMembersFromList(ITwitterListIdentifier list, IEnumerable<IUserIdentifier> userIdentifiersToRemove)
 {
     return TwitterListController.RemoveMultipleMembersFromList(list, userIdentifiersToRemove);
 }
예제 #56
0
 // Unsubscribe From list
 public async Task <bool> UnSubscribeFromListAsync(ITwitterListIdentifier list)
 {
     return(await ExecuteAuthenticatedUserOperation(() => _taskFactory.ExecuteTaskAsync(() => _twitterListController.UnSubscribeAuthenticatedUserFromList(list))));
 }
예제 #57
0
 /// <summary>
 /// Check if a user is a member of a specific list
 /// </summary>
 public static bool CheckIfUserIsAListMember(ITwitterListIdentifier listIdentifier, IUserIdentifier userIdentifier)
 {
     return TwitterListController.CheckIfUserIsAListMember(listIdentifier, userIdentifier);
 }
예제 #58
0
        // Members
        public IEnumerable <IUserDTO> GetMembersOfList(ITwitterListIdentifier identifier, int maxNumberOfUsersToRetrieve)
        {
            string baseQuery = _listsQueryGenerator.GetMembersFromListQuery(identifier, Math.Min(maxNumberOfUsersToRetrieve, 5000));

            return(_twitterAccessor.ExecuteCursorGETQuery <IUserDTO, IUserCursorQueryResultDTO>(baseQuery, maxNumberOfUsersToRetrieve));
        }
예제 #59
0
        // Remove Members
        public bool RemoveMemberFromList(ITwitterListIdentifier listIdentifier, IUserIdentifier user)
        {
            var query = _listsQueryGenerator.GetRemoveMemberFromListQuery(listIdentifier, user);

            return(_twitterAccessor.TryExecutePOSTQuery(query));
        }
예제 #60
0
 /// <summary>
 /// Check if a user is a member of a specific list
 /// </summary>
 public static bool CheckIfUserIsAListMember(ITwitterListIdentifier listIdentifier, IUserIdentifier userIdentifier)
 {
     return(TwitterListController.CheckIfUserIsAListMember(listIdentifier, userIdentifier));
 }