Пример #1
0
 public Task <VkGroupMembersResult> GetMembers(string gidScreenName, int?count = null, int?offset = null, VkMembersGroupSort sort = VkMembersGroupSort.IDDesc)
 {
     return(CallJsonApiDynamic <VkGroupMembersResult>("groups.getMembers", new { gid = gidScreenName, count = count, offset = offset, sort = sort.GetEnumValue() }));
 }
Пример #2
0
        /// <summary>
        /// Возвращает всех друзей группы за один раз
        /// </summary>
        /// <param name="src"> </param>
        /// <param name="gid"></param>
        /// <param name="sort"></param>
        /// <returns></returns>
        public static async Task <int[]> GetAllMembers(this IVkGroupsApi src, int gid, VkMembersGroupSort sort = VkMembersGroupSort.IDDesc)
        {
            const int maxPartSize = 1000;
            var       offset      = 0;
            var       result      = new List <int>();

            while (true)
            {
                try
                {
                    var vkUserInfo = await src.GetMembers(gid, sort : sort, offset : offset, count : maxPartSize);

                    if (vkUserInfo.Users.Length == 0)
                    {
                        break;
                    }
                    result.AddRange(vkUserInfo.Users);
                    offset += maxPartSize;
                }
                catch (VkRequestTooManyRequestsPerSecond ex)
                {
                    Thread.Sleep(500);
                }
                catch (Exception ex)
                {
                    Thread.Sleep(500);
                }
            }
            return(result.ToArray());
        }