示例#1
0
        private async void GetProfile()
        {
            var contactService = new ContactService();
            var result         = await contactService.GetProfile(MyAccount.IdUser);

            if (result != null && result.Contacts != null)
            {
                foreach (var item in result.Contacts)
                {
                    var room = new ConversationRoom(ConversationType.Private, MyAccount, item);
                    room.OnSendMessage += Room_OnSendMessage;
                    ChatRooms.Add(room);
                }
            }
        }
示例#2
0
        public async void SetCurrentRoom(int contactId)
        {
            var room = ChatRooms.Where(x => x.UserId == contactId).FirstOrDefault();

            if (room == null)
            {
                var userAccount = MyAccount.Contacts.Where(x => x.UserId == contactId).FirstOrDefault();
                if (userAccount != null)
                {
                    room = new ConversationRoom(ConversationType.Private, MyAccount, userAccount);
                    room.OnSendMessage += Room_OnSendMessage;
                    this.ChatRooms.Add(room);
                }
            }

            CurrentRoom = room;

            if (CurrentRoom != null && CurrentRoom.Conversations != null && CurrentRoom.Conversations.Count <= 0)
            {
                var conversationService = new ConversationService();
                var chatRoom            = await conversationService.GetConversations(MyAccount.IdUser, contactId);

                if (chatRoom != null)
                {
                    foreach (var item in chatRoom.Messages)
                    {
                        CurrentRoom.Conversations.Add(item);
                    }
                }
            }



            if (CurrentRoom != null && CurrentRoom.Conversations != null)
            {
                var unReaded = CurrentRoom.Conversations.Where(x => x.SenderId == CurrentRoom.UserId && x.Readed == false).ToList();
                if (unReaded != null && unReaded.Count() > 0)
                {
                    foreach (var item in unReaded)
                    {
                        item.Readed = true;
                    }
                    await ReadMessage(unReaded.ToList());
                }
            }

            this.Refresh();
        }