示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
        }
示例#3
0
        /// <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();
        }
示例#4
0
        /// <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;
        }