/// <summary> /// Получает список id пользователей, которые онлайн /// </summary> /// <param name="userId">Id авторизованного пользователя</param> /// <param name="accessToken">Token</param> /// <returns>Возвращает список id пользователей, которые онлайн. Пустой список, если ошибка</returns> public List<int> Get(int userId, string accessToken) { var urlBuilder = new ApiBuilder(FriendsMethods.FriendsGetOnline, ApiSettings, accessToken); var url = urlBuilder.GenerateUrl( FriendsGetOnlineParameters.Instance.UserId(userId) ); var requestBuilder = new RequestBuilder<int>("response", false); var response = requestBuilder.GetResponseArray(url); Exception = requestBuilder.Exception; return response; }
/// <summary> /// Возвращает информацию о пользователе /// </summary> /// <param name="userName">Имя пользователя</param> /// <returns>Возвращает информацию о пользователе</returns> public IUserInfo Get(string userName) { var urlBuilder = new OpenApiBuilder(UsersMethods.UsersGet, ApiSettings); var url = urlBuilder.GenerateUrl( UsersGetParameters.Instance.UserIds(new List<string> {userName}), UsersGetParameters.Instance.Fields(new List<string> { UserFields.Photo50 })); var requestBuilder = new RequestBuilder<UserInfo>("response", false); var response = requestBuilder.GetResponseArray(url).FirstOrDefault(); return response; }
/// <summary> /// Получае последние сообщения /// </summary> /// <param name="accessToken">Token</param> /// <param name="count">Количество последних сообщений</param> public IEnumerable<IDialogMessage> GetLast(string accessToken, int count = 20) { var urlBuilder = new ApiBuilder(MessagesMethods.MessagesGet, ApiSettings, accessToken); var url = urlBuilder.GenerateUrl( MessagesGetParameters.Instance.Count(count) ); var requestBuilder = new RequestBuilder<Message>("items"); var response = requestBuilder.GetResponseArray(url); Exception = requestBuilder.Exception; foreach (var message in response) message.VkUserId = _vkUserId; return response.Cast<IDialogMessage>().OrderBy(x => x.Date).ToList(); }
/// <summary> /// Получает список всех друзей пользователя /// </summary> /// <param name="userId">Id авторизованного пользователя</param> /// <param name="accessToken">Token</param> /// <returns>Возвращает список друзей пользователя. Пустой список если ошибка</returns> public List<IFriend> Get(int userId, string accessToken) { var urlBuilder = new ApiBuilder(FriendsMethods.FriendsGet, ApiSettings, accessToken); var url = urlBuilder.GenerateUrl( FriendsGetParameters.Instance.Order(Orders.Name), FriendsGetParameters.Instance.Fields(new List<string> { UserFields.Photo50 })); var requestBuilder = new RequestBuilder<Friend>("items"); var response = requestBuilder.GetResponseArray(url); foreach (var friend in response) { friend.ParentVkId = userId; friend.Position = response.IndexOf(friend); } Exception = requestBuilder.Exception; return response.Cast<IFriend>().ToList(); }
/// <summary> /// Возвращает историю сообщений с указанным собеседником. /// </summary> /// <param name="friendId">Id собеседника</param> /// <param name="accessToken">Token</param> /// <param name="count">Количество сообщений</param> /// <param name="offset">Смещение</param> /// <returns>Возвращает список сообщений</returns> public IEnumerable<IDialogMessage> GetHistory(int friendId, string accessToken, int count = 20, int offset = 0) { var urlBuilder = new ApiBuilder(MessagesMethods.MessagesGetHistory, ApiSettings, accessToken); var url = urlBuilder.GenerateUrl( MessagesGetHistoryParameters.Instance.Offset(offset), MessagesGetHistoryParameters.Instance.Count(count), MessagesGetHistoryParameters.Instance.UserId(friendId) ); var requestBuilder = new RequestBuilder<DialogMessage>("items"); var response = requestBuilder.GetResponseArray(url); Exception = requestBuilder.Exception; //Задаем, кому было отправлено сообщение foreach (var message in response) { message.VkUserId = _vkUserId; message.VkFriendId = friendId; } var messages = response.Cast<IDialogMessage>().OrderBy(x => x.Date).ToList(); return messages; }