private static VKParams parseParamsForGet( IEnumerable<FieldsEnum> fields, Int64? userId, OrderEnum? order, Int64? listId, Int32? count, Int32? offset, NameCaseEnum? nameCase ) { VKParams param = new VKParams(); if (fields != null) { param.Add("fields", String.Join(",", fields)); } if (userId.HasValue) { param.Add("user_id", userId.Value); } if (order.HasValue) { param.Add("order", order.Value); } if (listId.HasValue) { param.Add("list_id", listId.Value); } if (count.HasValue) { param.Add("count", count.Value); } if (offset.HasValue) { param.Add("offset", offset.Value); } if (nameCase.HasValue) { param.Add("name_case", nameCase.Value); } return param; }
/// <summary> /// Возвращает расширенную информацию о друзьях пользователя /// </summary> /// <param name="fields">Cписок дополнительных полей, которые необходимо вернуть</param> /// <param name="userId"> /// Идентификатор пользователя, для которого необходимо получить список друзей. Если параметр не /// задан, то считается, что он равен идентификатору текущего пользователя /// </param> /// <param name="order">Порядок, в котором нужно вернуть список друзей</param> /// <param name="listId">Идентификатор списка друзей, друзей из которого необходимо получить</param> /// <param name="count">Количество друзей, которое нужно вернуть</param> /// <param name="offset">Смещение, необходимое для выборки определенного подмножества друзей</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя</param> /// <param name="token">Токен для отмены выполнения запроса</param> /// <returns>Список друзей</returns> public static async Task<VKList<VKFriend>> GetExtendedAsync( IEnumerable<FieldsEnum> fields, Int64? userId = null, OrderEnum? order = null, Int64? listId = null, Int32? count = null, Int32? offset = null, NameCaseEnum? nameCase = null, CancellationToken? token = null ) { VKParams param = parseParamsForGet(fields, userId, order, listId, count, offset, nameCase); string response = await VKSession.Instance.DoRequestAsync("friends.get", param); JObject obj = JObject.Parse(response); if (obj["response"] == null) return null; var objArr = await JsonConvert.DeserializeObjectAsync<VKList<VKFriend>>(obj["response"].ToString()); if (token.HasValue) token.Value.ThrowIfCancellationRequested(); return objArr; }
/// <summary> /// Возвращает расширенную информацию о друзьях пользователя /// </summary> /// <param name="fields">Cписок дополнительных полей, которые необходимо вернуть</param> /// <param name="userId"> /// Идентификатор пользователя, для которого необходимо получить список друзей. Если параметр не /// задан, то считается, что он равен идентификатору текущего пользователя /// </param> /// <param name="order">Порядок, в котором нужно вернуть список друзей</param> /// <param name="listId">Идентификатор списка друзей, друзей из которого необходимо получить</param> /// <param name="count">Количество друзей, которое нужно вернуть</param> /// <param name="offset">Смещение, необходимое для выборки определенного подмножества друзей</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя</param> /// <returns>Список друзей</returns> public static VKList<VKFriend> GetExtended( IEnumerable<FieldsEnum> fields, Int64? userId = null, OrderEnum? order = null, Int64? listId = null, Int32? count = null, Int32? offset = null, NameCaseEnum? nameCase = null ) { VKParams param = parseParamsForGet(fields, userId, order, listId, count, offset, nameCase); string response = VKSession.Instance.DoRequest("friends.get", param); JObject obj = JObject.Parse(response); if (obj["response"] == null) return null; var objArr = JsonConvert.DeserializeObject<VKList<VKFriend>>(obj["response"].ToString()); return objArr; }