void TestParsingIds(FriendshipType friendType) { var friendReqProc = new FriendshipRequestProcessor <Friendship> { Type = friendType }; List <Friendship> friends = friendReqProc.ProcessResults(IdsResponse); Assert.IsNotNull(friends); Assert.IsNotNull(friends.SingleOrDefault()); var friend = friends.Single(); Assert.IsNotNull(friend); var cursor = friend.CursorMovement; Assert.IsNotNull(cursor); Assert.AreEqual(2, cursor.Previous); Assert.AreEqual(1, cursor.Next); var idList = friend.IDInfo; Assert.IsNotNull(idList); var idsCursor = idList.CursorMovement; Assert.IsNotNull(idsCursor); Assert.AreEqual(2, idsCursor.Previous); Assert.AreEqual(1, idsCursor.Next); var ids = idList.IDs; Assert.IsNotNull(ids); Assert.IsTrue(ids.Any()); var id = ids.First(); Assert.AreEqual(5676142ul, id); }
void TestParsingIds(FriendshipType friendType) { var friendReqProc = new FriendshipRequestProcessor <Friendship> { Type = friendType }; List <Friendship> friends = friendReqProc.ProcessResults(IdsResponse); Assert.NotNull(friends); Assert.Single(friends); var friend = friends.Single(); Assert.NotNull(friend); var idList = friend.IDInfo; Assert.NotNull(idList); var cursor = idList.CursorMovement; Assert.NotNull(cursor); Assert.Equal("2", cursor.Previous); Assert.Equal("1", cursor.Next); var ids = idList.IDs; Assert.NotNull(ids); Assert.NotEmpty(ids); var id = ids.First(); Assert.Equal(5676142ul, id); }
void TestParsingIds(FriendshipType friendType) { var friendReqProc = new FriendshipRequestProcessor<Friendship> { Type = friendType }; List<Friendship> friends = friendReqProc.ProcessResults(IdsResponse); Assert.IsNotNull(friends); Assert.IsNotNull(friends.SingleOrDefault()); var friend = friends.Single(); Assert.IsNotNull(friend); var cursor = friend.CursorMovement; Assert.IsNotNull(cursor); Assert.AreEqual(2, cursor.Previous); Assert.AreEqual(1, cursor.Next); var idList = friend.IDInfo; Assert.IsNotNull(idList); var idsCursor = idList.CursorMovement; Assert.IsNotNull(idsCursor); Assert.AreEqual(2, idsCursor.Previous); Assert.AreEqual(1, idsCursor.Next); var ids = idList.IDs; Assert.IsNotNull(ids); Assert.IsTrue(ids.Any()); var id = ids.First(); Assert.AreEqual(5676142ul, id); }
void TestParsingIds(FriendshipType friendType) { var friendReqProc = new FriendshipRequestProcessor<Friendship> { Type = friendType }; List<Friendship> friends = friendReqProc.ProcessResults(IdsResponse); Assert.NotNull(friends); Assert.Single(friends); var friend = friends.Single(); Assert.NotNull(friend); var idList = friend.IDInfo; Assert.NotNull(idList); var cursor = idList.CursorMovement; Assert.NotNull(cursor); Assert.Equal("2", cursor.Previous); Assert.Equal("1", cursor.Next); var ids = idList.IDs; Assert.NotNull(ids); Assert.NotEmpty(ids); var id = ids.First(); Assert.Equal(5676142ul, id); }
private List <ulong> GetFriendship(FriendshipType type) { if (!_friendshipCache.ContainsKey(type) || _friendshipCache[type] == null || _friendshipCache[type].Count == 0) { var followers = new List <ulong>(); long cursor = -1; do { Limiter(type == FriendshipType.FriendIDs ? FriendsLimitName : FollowersLimitName); var friendship = _twitterCtx.Friendship.SingleOrDefault(f => f.Type == type && f.ScreenName == Username && f.Cursor == cursor); if (friendship?.IDInfo?.IDs != null) { followers.AddRange(friendship.IDInfo.IDs); cursor = friendship.CursorMovement.Next; } }while(cursor != 0); _friendshipCache[type] = followers; } return(_friendshipCache[type]); }
public async Task <OptionKey> SetOption(Options options, bool value, FriendshipType friendshipType = FriendshipType.Open) { var postData = new Dictionary <string, string>(); if (options != Options.Friendship) { postData.Add("value", value ? 1 : 0); } else { postData.Add("value", friendshipType.GetDescription().ToLower()); } postData.Add("name", options.GetDescription().ToLower()); var parameter = "?" + postData.ToQueryString(); var response = await Post <RootOptionKey>(OptionUrl + parameter, null); ValidateResponse(response); return(response.OptionKey); }
public async Task<OptionKey> SetOption(Options options, bool value, FriendshipType friendshipType = FriendshipType.Open) { var postData = new Dictionary<string, string>(); if (options != Options.Friendship) postData.Add("value", value ? 1 : 0); else { postData.Add("value", friendshipType.GetDescription().ToLower()); } postData.Add("name", options.GetDescription().ToLower()); var parameter = "?" + postData.ToQueryString(); var response = await Post<RootOptionKey>(OptionUrl + parameter, null); ValidateResponse(response); return response.OptionKey; }
///<summary> /// Возвращает список пользователей в соответствии с заданным критерием поиска /// ///</summary> ///<param name="q">строка поискового запроса</param> ///<param name="sort">порядок сортировки</param> ///<param name="fields">список дополнительных полей профилей, которые необходимо вернуть</param> ///<param name="city">идентификатор города</param> ///<param name="country">идентификатор страны</param> ///<param name="hometown">название города строкой</param> ///<param name="universityCountry">идентификатор страны, в которой пользователи закончили ВУЗ</param> ///<param name="university">идентификатор ВУЗа</param> ///<param name="universityYear">год окончания ВУЗа</param> ///<param name="universityFaculty">идентификатор факультета</param> ///<param name="universityChair">идентификатор кафедры</param> ///<param name="sex">пол</param> ///<param name="status">семейное положение</param> ///<param name="ageFrom">начиная с какого возраста</param> ///<param name="ageTo">до какого возраста</param> ///<param name="birthDay">день рождения</param> ///<param name="birthMonth">месяц рождения</param> ///<param name="birthYear">год рождения</param> ///<param name="online">только в сети</param> ///<param name="hasPhoto">только с фотографией</param> ///<param name="schoolCountry">идентификатор страны, в которой пользователи закончили школу</param> ///<param name="schoolCity">идентификатор города, в котором пользователи закончили школу</param> ///<param name="schoolClass"></param> ///<param name="school">идентификатор школы, которую закончили пользователи</param> ///<param name="schoolYear">год окончания школы</param> ///<param name="religion">религиозные взгляды</param> ///<param name="interests">интересы</param> ///<param name="company">название компании, в которой работают пользователи</param> ///<param name="position">название должности</param> ///<param name="groupId">идентификатор группы, среди пользователей которой необходимо проводить поиск</param> ///<param name="fromList">Разделы среди которых нужно осуществить поиск</param> ///<param name="offset">Оффсет для возврата результатов</param> ///<param name="count">Количество записей, которые необходимо вернуть</param> public EntityList<User> SearchSync( string q = "", SearchSortOrder sort = SearchSortOrder.ByRating, UserFields fields = UserFields.None, int? city = null, int? country = null, string hometown = "", int? universityCountry = null, int? university = null, int? universityYear = null, int? universityFaculty = null, int? universityChair = null, Sex? sex = null, Relation? status = null, byte? ageFrom = null, byte? ageTo = null, byte? birthDay = null, byte? birthMonth = null, ushort? birthYear = null, bool? online = null, bool? hasPhoto = null, int? schoolCountry = null, int? schoolCity = null, int? schoolClass = null, int? school = null, int? schoolYear = null, string religion = "", string interests = "", string company = "", string position = "", int? groupId = null, FriendshipType? fromList = null, int? offset = null, int? count = 100 ) { var task = _parent.Executor.ExecAsync( _parent._reqapi.Users.Search( q,sort,fields,city,country,hometown,universityCountry,university,universityYear,universityFaculty,universityChair,sex,status,ageFrom,ageTo,birthDay,birthMonth,birthYear,online,hasPhoto,schoolCountry,schoolCity,schoolClass,school,schoolYear,religion,interests,company,position,groupId,fromList,offset, count ) ); task.Wait(); return task.Result.Response; }
///<summary> /// Возвращает список пользователей в соответствии с заданным критерием поиска /// ///</summary> ///<param name="q">строка поискового запроса</param> ///<param name="sort">порядок сортировки</param> ///<param name="fields">список дополнительных полей профилей, которые необходимо вернуть</param> ///<param name="city">идентификатор города</param> ///<param name="country">идентификатор страны</param> ///<param name="hometown">название города строкой</param> ///<param name="universityCountry">идентификатор страны, в которой пользователи закончили ВУЗ</param> ///<param name="university">идентификатор ВУЗа</param> ///<param name="universityYear">год окончания ВУЗа</param> ///<param name="universityFaculty">идентификатор факультета</param> ///<param name="universityChair">идентификатор кафедры</param> ///<param name="sex">пол</param> ///<param name="status">семейное положение</param> ///<param name="ageFrom">начиная с какого возраста</param> ///<param name="ageTo">до какого возраста</param> ///<param name="birthDay">день рождения</param> ///<param name="birthMonth">месяц рождения</param> ///<param name="birthYear">год рождения</param> ///<param name="online">только в сети</param> ///<param name="hasPhoto">только с фотографией</param> ///<param name="schoolCountry">идентификатор страны, в которой пользователи закончили школу</param> ///<param name="schoolCity">идентификатор города, в котором пользователи закончили школу</param> ///<param name="schoolClass"></param> ///<param name="school">идентификатор школы, которую закончили пользователи</param> ///<param name="schoolYear">год окончания школы</param> ///<param name="religion">религиозные взгляды</param> ///<param name="interests">интересы</param> ///<param name="company">название компании, в которой работают пользователи</param> ///<param name="position">название должности</param> ///<param name="groupId">идентификатор группы, среди пользователей которой необходимо проводить поиск</param> ///<param name="fromList">Разделы среди которых нужно осуществить поиск</param> ///<param name="offset">Оффсет для возврата результатов</param> ///<param name="count">Количество записей, которые необходимо вернуть</param> public Request<EntityList<User>> Search( string q = "", SearchSortOrder sort = SearchSortOrder.ByRating, UserFields fields = UserFields.None, int? city = null, int? country = null, string hometown = "", int? universityCountry = null, int? university = null, int? universityYear = null, int? universityFaculty = null, int? universityChair = null, Sex? sex = null, Relation? status = null, byte? ageFrom = null, byte? ageTo = null, byte? birthDay = null, byte? birthMonth = null, ushort? birthYear = null, bool? online = null, bool? hasPhoto = null, int? schoolCountry = null, int? schoolCity = null, int? schoolClass = null, int? school = null, int? schoolYear = null, string religion = "", string interests = "", string company = "", string position = "", int? groupId = null, FriendshipType? fromList = null, int? offset = null, int? count = 100 ) { var req = new Request<EntityList<User>>{ MethodName = "users.search", Parameters = new Dictionary<string, string> { { "q", q}, { "sort", ((int)sort).ToNCString()}, { "fields", String.Join( ",", MiscTools.GetUserFields( fields ) )}, { "city", MiscTools.NullableString(city)}, { "country", MiscTools.NullableString(country)}, { "hometown", hometown}, { "university_country", MiscTools.NullableString(universityCountry)}, { "university", MiscTools.NullableString(university)}, { "university_year", MiscTools.NullableString(universityYear)}, { "university_faculty", MiscTools.NullableString(universityFaculty)}, { "university_chair", MiscTools.NullableString(universityChair)}, { "sex", MiscTools.NullableString( (int?)sex )}, { "status", MiscTools.NullableString( (int?)status )}, { "age_from", MiscTools.NullableString(ageFrom)}, { "age_to", MiscTools.NullableString(ageTo)}, { "birth_day", MiscTools.NullableString(birthDay)}, { "birth_month", MiscTools.NullableString(birthMonth)}, { "birth_year", MiscTools.NullableString(birthYear)}, { "online", (online != null ? ( online.Value ? 1 : 0 ).ToNCString() : "")}, { "has_photo", (hasPhoto != null ? ( hasPhoto.Value ? 1 : 0 ).ToNCString() : "")}, { "school_country", MiscTools.NullableString(schoolCountry)}, { "school_city", MiscTools.NullableString(schoolCity)}, { "school_class", MiscTools.NullableString(schoolClass)}, { "school", MiscTools.NullableString(school)}, { "school_year", MiscTools.NullableString(schoolYear)}, { "religion", religion}, { "interests", interests}, { "company", company}, { "position", position}, { "group_id", MiscTools.NullableString(groupId)}, { "from_list", fromList?.ToNCString()?.ToSnake()??""}, { "offset", offset.NullableString() }, { "count", count.NullableString() }, } }; req.Token = _parent.CurrentToken; return req; }