Ejemplo n.º 1
0
        internal static VkDialog FromJson(JToken json)
        {
            if (json == null)
            {
                throw new Exception("Json can't be null");
            }

            var result = new VkDialog();

            if (json["unread"] != null)
            {
                result.Unread = (int)json["unread"];
            }
            if (json["message"] != null)
            {
                result.Message = VkMessage.FromJson(json["message"]);
            }

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <VkItemsResponse <VkMessage> > GetById(IEnumerable <long> messageIds, int previewLength = 0)
        {
            var parametres = new Dictionary <string, string>();

            if (messageIds != null)
            {
                parametres.Add("message_ids", string.Join(",", messageIds));
            }

            if (previewLength > 0)
            {
                parametres.Add("preview_length", previewLength.ToString());
            }

            _vkontakte.SignMethod(parametres);

            var response = await VkRequest.GetAsync(VkConst.MethodBase + "messages.getById", parametres);

            if (response.SelectToken("response.items") != null)
            {
                return(new VkItemsResponse <VkMessage>(response["response"]["items"].Select(i => VkMessage.FromJson(i, _vkontakte.ApiVersion)).ToList(),
                                                       (int)response["response"]["count"]));
            }

            return(VkItemsResponse <VkMessage> .Empty);
        }
Ejemplo n.º 3
0
        public async Task <VkItemsResponse <VkMessage> > GetHistory(long userId, long chatId = 0, int offset = 0, int count = 0, bool rev = false)
        {
            var parametres = new Dictionary <string, string>();

            if (userId != 0)
            {
                parametres.Add("user_id", userId.ToString());
            }
            else
            {
                if (chatId != 0)
                {
                    parametres.Add("chat_id", chatId.ToString());
                }
                else
                {
                    throw new Exception("User id or chat id must be specified.");
                }
            }

            if (offset > 0)
            {
                parametres.Add("offset", offset.ToString());
            }

            if (count > 0)
            {
                parametres.Add("count", count.ToString());
            }

            if (rev)
            {
                parametres.Add("rev", "1");
            }

            _vkontakte.SignMethod(parametres);

            var response = await VkRequest.GetAsync(VkConst.MethodBase + "messages.getHistory", parametres);

            if (response.SelectToken("response.items") != null)
            {
                return(new VkItemsResponse <VkMessage>(response["response"]["items"].Select(i => VkMessage.FromJson(i, _vkontakte.ApiVersion)).ToList(), (int)response["response"]["count"]));
            }

            return(VkItemsResponse <VkMessage> .Empty);
        }
Ejemplo n.º 4
0
        public static VkMessage FromJson(JToken json, string apiVersion = null)
        {
            if (json == null)
            {
                throw new Exception("Json can't be null");
            }

            var result = new VkMessage();

            if (json["id"] != null)
            {
                result.Id = (long)json["id"];
            }

            if (json["user_id"] != null)
            {
                result.UserId = (long)json["user_id"];
            }
            result.Date = DateTimeExtensions.UnixTimeStampToDateTime((long)json["date"]);

            if (json["read_state"] != null)
            {
                result.IsRead = (int)json["read_state"] == 1;
            }

            if (json["out"] != null)
            {
                result.IsOut = (int)json["out"] == 1;
            }

            result.Title = (string)json["title"];
            result.Body  = (string)json["body"];

            if (json["deleted"] != null)
            {
                result.IsDeleted = (int)json["deleted"] == 1;
            }

            if (json["attachments"] != null)
            {
                result.Attachments = VkAttachment.FromJson(json["attachments"]);
            }

            if (json["geo"] != null)
            {
                result.Geo = VkGeo.FromJson(json["geo"]);
            }

            if (json["fwd_messages"] != null)
            {
                result.ForwardMessages = new List <VkMessage>();
                foreach (var fwdMessage in json["fwd_messages"])
                {
                    var message = VkMessage.FromJson(fwdMessage);
                    result.ForwardMessages.Add(message);
                }
            }

            if (json["emoji"] != null)
            {
                result.ContainsEmoji = (int)json["emoji"] == 1;
            }

            if (json["chat_id"] != null)
            {
                result.ChatId = (long)json["chat_id"];
            }

            if (json["chat_active"] != null)
            {
                result.ChatUsers = json["chat_active"].Select(t => t.Value <long>()).ToList();
            }

            if (json["users_count"] != null)
            {
                result.UsersCount = (int)json["users_count"];
            }

            if (json["admin_id"] != null)
            {
                result.AdminId = (long)json["admin_id"];
            }

            if (json["action"] != null)
            {
                result.Action = (string)json["action"];
            }

            if (json["action_text"] != null)
            {
                result.ActionText = (string)json["action_text"];
            }

            if (json["photo_50"] != null)
            {
                result.Photo50 = (string)json["photo_50"];
            }

            if (json["photo_100"] != null)
            {
                result.Photo100 = (string)json["photo_100"];
            }

            if (json["photo_200"] != null)
            {
                result.Photo200 = (string)json["photo_200"];
            }

            return(result);
        }
        public async Task <VkItemsResponse <VkMessage> > GetDialogs(int offset    = 0, int count = 0, uint previewLength = 0,
                                                                    string userId = null)
        {
            if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired)
            {
                throw new Exception("Access token is not valid.");
            }

            var parameters = new Dictionary <string, string>();

            if (offset > 0)
            {
                parameters.Add("offset", offset.ToString());
            }

            if (count > 0)
            {
                parameters.Add("count", count.ToString());
            }

            if (previewLength > 0)
            {
                parameters.Add("preview_length", previewLength.ToString());
            }

            if (!string.IsNullOrEmpty(userId))
            {
                parameters.Add("user_id", userId);
            }

            _vkontakte.SignMethod(parameters);

            var response = await new VkRequest(new Uri(VkConst.MethodBase + "messages.getDialogs"), parameters).Execute();

            VkErrorProcessor.ProcessError(response);

            if (response.SelectToken("response.items") != null)
            {
                return(new VkItemsResponse <VkMessage>(response["response"]["items"].Select(i => VkMessage.FromJson(i, _vkontakte.ApiVersion)).ToList(), (int)response["response"]["count"]));
            }

            return(VkItemsResponse <VkMessage> .Empty);
        }
        public async Task <VkItemsResponse <VkMessage> > GetById(IEnumerable <long> messageIds, int previewLength = 0)
        {
            if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired)
            {
                throw new Exception("Access token is not valid.");
            }

            var parametres = new Dictionary <string, string>();

            if (messageIds != null)
            {
                parametres.Add("message_ids", string.Join(",", messageIds));
            }

            if (previewLength > 0)
            {
                parametres.Add("preview_length", previewLength.ToString());
            }

            _vkontakte.SignMethod(parametres);

            var response = await new VkRequest(new Uri(VkConst.MethodBase + "messages.getById"), parametres).Execute();

            VkErrorProcessor.ProcessError(response);

            if (response.SelectToken("response.items") != null)
            {
                return(new VkItemsResponse <VkMessage>(response["response"]["items"].Select(i => VkMessage.FromJson(i, _vkontakte.ApiVersion)).ToList(), (int)response["response"]["count"]));
            }

            return(VkItemsResponse <VkMessage> .Empty);
        }
        public async Task <VkItemsResponse <VkMessage> > GetHistory(long userId, long chatId = 0, int offset = 0, int count = 0, bool rev = false)
        {
            if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired)
            {
                throw new Exception("Access token is not valid.");
            }

            var parametres = new Dictionary <string, string>();

            if (userId != 0)
            {
                parametres.Add("user_id", userId.ToString());
            }
            else
            {
                if (chatId != 0)
                {
                    parametres.Add("chat_id", chatId.ToString());
                }
                else
                {
                    throw new Exception("User id or chat id must be specified.");
                }
            }

            if (offset > 0)
            {
                parametres.Add("offset", offset.ToString());
            }

            if (count > 0)
            {
                parametres.Add("count", count.ToString());
            }

            if (rev)
            {
                parametres.Add("rev", "1");
            }

            _vkontakte.SignMethod(parametres);

            var response = await new VkRequest(new Uri(VkConst.MethodBase + "messages.getHistory"), parametres).Execute();

            VkErrorProcessor.ProcessError(response);

            if (response.SelectToken("response.items") != null)
            {
                return(new VkItemsResponse <VkMessage>(response["response"]["items"].Select(i => VkMessage.FromJson(i, _vkontakte.ApiVersion)).ToList(), (int)response["response"]["count"]));
            }

            return(VkItemsResponse <VkMessage> .Empty);
        }