/// <summary> /// Позволяет получить список пользователей мультидиалога по его id. /// </summary> /// <param name="chatIds">Идентификаторы бесед. список целых чисел, разделенных запятыми (Список целых чисел, разделенных запятыми).</param> /// <param name="fields">Список дополнительных полей профилей, которые необходимо вернуть. /// Доступные значения: nickname, screen_name, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, counters, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список строк, разделенных через запятую (Список строк, разделенных через запятую).</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom. строка (Строка).</param> /// <returns> /// После успешного выполнения возвращает список идентификаторов участников беседы. /// Если был задан параметр fields, возвращает список объектов пользователей с дополнительным полем invited_by, содержащим идентификатор пользователя, пригласившего в беседу. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/messages.getChatUsers" />. /// </remarks> public ReadOnlyCollection<User> GetChatUsers(IEnumerable<long> chatIds, UsersFields fields, NameCase nameCase) { var parameters = new VkParameters { { "chat_ids", chatIds }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("messages.getChatUsers", parameters); var list = new List<User>(); foreach ( var chatId in chatIds ) { var chatResponse = response[chatId.ToString()]; var users = chatResponse.ToReadOnlyCollectionOf(x => fields != null ? x : new User { Id = (long) x }); foreach ( var user in users ) { bool exist = list.Exists(first => first.Id == user.Id); if ( !exist ) list.Add(user); } } return list.ToReadOnlyCollection(); }