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); }
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); }
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); }
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); }