private void InstanceOnNewMessage(LongPullMessageModel message) { var messageTest = message.response.messages.items[0]; for (int i = 0; i < DialogItemsViewModel.Count; i++) { var item = DialogItemsViewModel[i]; //если чат if (item.ChatId == null) { if (item.UserId == messageTest.user_id) { DialogItemsViewModel.RemoveAt(i); item.Body = messageTest.body; item.Date = messageTest.date; DialogItemsViewModel.Insert(0, item); } } else { if (item.ChatId == messageTest.chat_id) { DialogItemsViewModel.RemoveAt(i); item.Body = messageTest.body; item.Date = messageTest.date; DialogItemsViewModel.Insert(0, item); } } } }
public Task <LongPullMessageModel> GetLongPollHistoryAsynk(int ts, int pts, int max_msg_id = 0, int preview_length = 0, int onlines = 0) { return(Task.Run(() => { LongPullMessageModel messageModel = GetLongPollHistory(ts, pts, max_msg_id, preview_length, onlines); return messageModel; })); }
public LongPullMessageModel GetLongPollHistory(int ts, int pts, int max_msg_id = 0, int preview_length = 0, int onlines = 0) { var parameters = new Dictionary <string, object> { { "ts=", ts }, { "pts=", pts }, { "max_msg_id=", max_msg_id }, { "preview_length=", preview_length }, { "onlines=", onlines } }; string str = VkRequest.GetData("messages.getLongPollHistory", parameters); //заменить на нужную модель данных LongPullMessageModel longPullModel = JsonConvert.DeserializeObject <LongPullMessageModel>(str); return(longPullModel); }
public NewMessageWindow(LongPullMessageModel longPullMessageModel) { _longPullMessageModel = longPullMessageModel; Message message = new Message(); message.message = _longPullMessageModel.response.messages.items[0].body; message.Author = _longPullMessageModel.response.profiles[0].first_name + " " + _longPullMessageModel.response.profiles[0].last_name; message.Photo = _longPullMessageModel.response.profiles[0].photo_medium_rec; DataContext = message; InitializeComponent(); TrayPos tpos = new TrayPos(); tpos.getXY((int)this.Width, (int)this.Height, out top, out left, out prop, out end); this.Top = top; this.Left = left; anim = new DoubleAnimation(end, TimeSpan.FromSeconds(1)); }
private async void DetectTypeEvent(Updates updates) { foreach (var update in updates.updates) { int codeTypeEvent = Convert.ToInt32(update[0]); if (codeTypeEvent == 61) { //MessageBox.Show("Петрович набирает сообщение"); } //4,$message_id,$flags,$from_id,$timestamp,$subject,$text,$attachments if (codeTypeEvent == 4) { //получаем новые сообщения LongPullMessageModel longPullMessageModel = await _vkApi.Messages.GetLongPollHistoryAsynk(ts, pts); var message = new MessageNew { TypeEvent = Convert.ToInt32(update[0]), MessageId = Convert.ToInt32(update[1]), Flags = Convert.ToInt32(update[2]), FromId = Convert.ToInt32(update[3]), Timestamp = Convert.ToInt32(update[4]), Subject = Convert.ToString(update[5]), Text = Convert.ToString(update[6]) }; NewMessageWindow newMessage = new NewMessageWindow(longPullMessageModel); newMessage.Show(); if (NewMessage != null) { NewMessage(longPullMessageModel); } } } }