예제 #1
0
        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;
        }
예제 #2
0
        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;
            }
        }