public void LoadChange(KeyValuePair <string, ConversationModel> model) { // update model this.Model = model; // Load conversation avatar this.ConversationAvatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(Model.Value.Avatar); // Load conversation title this.ConversationTitle.Text = model.Value.Title; // Load new recived messages var messages = model.Value.Messages.Where(m => m.Value.SendTime > this.LoadedTime && m.Value.UserID != Service.UserID) .OrderBy(m => m.Value.SendTime) .ToDictionary(m => m.Key, m => m.Value); if (messages.Count > 0) { foreach (var message in messages) { this.MessageContainer1.Children.Add(new ReceivedMessageControl(message)); } } // change seen time this.LoadedTime = model.Value.ChangedTime; ConversationService.ChangeMemberSeenTime(Model.Key, Service.UserID, this.LoadedTime); this.ConversationScrollContainer.ScrollToEnd(); //this.Loading.Visibility = Visibility.Collapsed; }
public void Load() { if (Model.Value != null) { // Load danh sách tạm user để tăng hiệu suất load thông tin user đang nhập văn bản this.UserInfors = ConversationService.GetUsersOfConversation(Model.Key); // Load conversation avatar this.ConversationAvatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(Model.Value.Avatar); // Load conversation title this.ConversationTitle.Text = Model.Value.Title; // Load messages this.MessageContainer1.Children.Clear(); foreach (var message in Model.Value.Messages.OrderBy(m => m.Value.SendTime)) { if (message.Value.UserID == "SYS") { this.MessageContainer1.Children.Add(new SystemMesageControl(message)); } else if (message.Value.UserID == UserService.UserID) { this.MessageContainer1.Children.Add(new SentMessageControl(message)); } else { this.MessageContainer1.Children.Add(new ReceivedMessageControl(message)); } } // Load system emojis if (SystemValues.Emojis != null) { foreach (var emoji in SystemValues.Emojis) { SystemEmojisContainer.Children.Add(new EmojiControl(this, emoji)); } } // Load system stickers if (SystemValues.Stickers != null) { foreach (var sticker in SystemValues.Stickers) { SystemStickerContainer.Children.Add(new StickerControl(this, sticker)); } } // change seen time this.LoadedTime = Model.Value.ChangedTime; ConversationService.ChangeMemberSeenTime(Model.Key, Service.UserID, this.LoadedTime); OnAsyns(); this.ConversationScrollContainer.ScrollToEnd(); //this.Loading.Visibility = Visibility.Collapsed; } }