Ejemplo n.º 1
0
        private List <long> GetUserIdsRecursive(VkMessage message)
        {
            var result = new List <long>();

            if (message != Message.MessageContent)
            {
                result.Add(message.UserId);
            }
            if (!message.ForwardMessages.IsNullOrEmpty())
            {
                foreach (var forwardMessage in message.ForwardMessages)
                {
                    result.AddRange(GetUserIdsRecursive(forwardMessage));
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
 public VkMessageModel(VkMessage message, IEnumerable <VkGroup> groups)
 {
     Id      = message.Id;
     OwnerId = message.OwnerId;
     Date    = message.Date;
     Text    = message.Text;
     FromId  = message.FromId;
     Images  = message.Attachments
               .Where(f =>
                      f.Type == MessageAttachmentType.photo &&
                      f.Photo?.Sizes != null &&
                      f.Photo.Sizes.Count > 2
                      )
               .Select(f => f.Photo.Sizes[3].Url)
               .ToArray();
     LikesCount   = message.Likes?.Count ?? 0;
     RepostsCount = message.Reposts?.Count ?? 0;
     Owner        = groups.Where(a => a.Id == -message.OwnerId).Select(f => f.Name).FirstOrDefault() ?? "";
 }
Ejemplo n.º 3
0
        public async Task <VkItemsResponse <VkMessage> > GetChatHistoryAndMarkAsRead(long userId, long chatId = 0, int offset = 0, int count = 0, bool rev = false, bool markAsRead = 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");
            }

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

            _vkontakte.SignMethod(parametres);

            var response = await VkRequest.GetAsync(VkConst.MethodBase + "execute.getChatHistoryAndMarkAsRead", 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 Message(VkMessage message, VkProfile sender)
 {
     MessageContent = message;
     Sender         = sender;
 }
Ejemplo n.º 5
0
 public Dialog(VkMessage message)
 {
     _message = message;
 }
Ejemplo n.º 6
0
 public Dialog(VkDialog dialog)
 {
     UnreadCount = dialog.Unread;
     _message    = dialog.Message;
 }