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