Esempio n. 1
0
        internal void AddNewMessage(Event e)
        {
            if (messagesIds.ContainsKey(e.event_id))
            {
                return;
            }

            messagesIds.Add(e.event_id, e.timestamp);
            if (_lastMessage.SenderId == e.sender_id.chat_id)
            {
                _lastMessage.AddContent(e);
            }
            else
            {
                _lastMessage = new Message(e);
                _synchronizationContext.Post((obj) =>
                {
                    MessagesHistory.Add(obj as Message);
                }, _lastMessage);
            }

            OnPropertyChanged("MessagesHistory");
            OnPropertyChanged("LastMessage");

            if (NewMessageReceived != null)
            {
                NewMessageReceived(this, _lastMessage);
            }
        }
Esempio n. 2
0
        internal void AddOldMessages(List <Event> events)
        {
            _synchronizationContext.Post((obj) =>
            {
                IEnumerable <Event> orderedEvents = ((List <Event>)obj).OrderByDescending(c => c.timestamp);
                Message current = MessagesHistory.First();
                // hangout return all messages
                foreach (Event e in orderedEvents)
                {
                    if (messagesIds.ContainsKey(e.event_id))
                    {
                        continue;
                    }

                    messagesIds.Add(e.event_id, e.timestamp);
                    if (current.SenderId == e.sender_id.chat_id)
                    {
                        current.AddContent(e, true);
                    }
                    else
                    {
                        current = new Message(e);
                        MessagesHistory.Insert(0, current);
                    }
                }
            }, events);
        }
Esempio n. 3
0
        internal void NewEventReceived(Client client, Event e)
        {
            if (_lastMessage.SenderId == e.sender_id.chat_id)
            {
                _lastMessage.AppendContent(e.chat_message);
            }
            else
            {
                _lastMessage = new Message(e);
                MessagesHistory.Add(_lastMessage);
            }

            if (NewMessageReceived != null)
            {
                NewMessageReceived(this, _lastMessage);
            }

            LastMessage = e.chat_message.message_content.segment.Last().text;
        }
Esempio n. 4
0
        internal void HandleNewMessage(Event e)
        {
            if (_lastMessage.SenderId == e.sender_id.chat_id)
            {
                _lastMessage.AppendContent(e);
            }
            else
            {
                _lastMessage = new Message(e);
                _synchronizationContext.Post((obj) =>
                {
                    MessagesHistory.Add(obj as Message);
                }, _lastMessage);
            }

            OnPropertyChanged("MessagesHistory");
            OnPropertyChanged("LastMessage");

            if (NewMessageReceived != null)
            {
                NewMessageReceived(this, _lastMessage);
            }
        }