示例#1
0
 public StickerControl(ConversationBoxControl conversationControl, string source)
 {
     InitializeComponent();
     ConversationControl = conversationControl;
     Source = source;
     ImageBehavior.SetAnimatedSource(StickerContent, Ultilities.ConvertBase64StringToBitmapImage(source));
 }
示例#2
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;
        }
示例#3
0
        public void LoadChange(KeyValuePair <string, ConversationModel> model)
        {
            // update model
            this.Model = model;

            // update loaded time
            this.LoadedTime = DateTime.Now;

            // 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));
                }
            }
        }
 public void Load()
 {
     if (Model != null)
     {
         UserAvatarImage.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(Model.Avatar);
         UserAvatarBorder.ToolTip    = new ToolTip()
         {
             Content = Model.Fullname
         };
     }
 }
示例#5
0
        public void Load()
        {
            if (Model.Value != null)
            {
                ConversationInvitationModel content = Newtonsoft.Json.JsonConvert.DeserializeObject <ConversationInvitationModel>(Model.Value.Content.ToString());
                UserModel fromUser = UserService.GetUserById(content.FromUserID);

                this.FromUserAvatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(fromUser.Avatar);
                this.ContentText.Text           = "You have received an invitation to join the conversation by " + fromUser.Fullname;
            }
        }
示例#6
0
        private void OnAsyns()
        {
            //new Thread(new ThreadStart(() =>
            //{

            //})).Start();

            Service.Client.OnAsync(
                path: "Conversations/" + Model.Key,
                changed: (sender, args, context) =>
            {
                if (args.Path == "/Title")
                {
                    this.Dispatcher.Invoke(() =>
                    {
                        this.ConversationTitle.Text = args.Data;
                    });
                }
                else
                if (args.Path == "/Avatar")
                {
                    this.Dispatcher.Invoke(() =>
                    {
                        this.ConversationAvatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(args.Data);
                    });
                }
                else
                if (args.Path == "/ChangedTime" && IsShowing == false)
                {
                    this.Dispatcher.Invoke(() =>
                    {
                        Model = ConversationService.GetConversationById(Model.Key);
                        Load();
                    });
                }
                else
                if (args.Path == "/Members/" + Service.UserID + "/SeenTime")
                {
                    this.Dispatcher.Invoke(() =>
                    {
                        Model = ConversationService.GetConversationById(Model.Key);
                        Load();
                    });
                }
            }
                );
        }
示例#7
0
        public void Load()
        {
            if (Model.Value != null)
            {
                // avatar
                this.ConversationAvatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(Model.Value.Avatar);

                // unseen messages
                var user           = Model.Value.Members.Where(m => m.Key == Service.UserID).FirstOrDefault();
                var unSeenMessages = Model.Value.Messages.Where(m => m.Value.SendTime > user.Value.SeenTime).ToDictionary(m => m.Key, m => m.Value);

                if (unSeenMessages != null && unSeenMessages.Count > 0)
                {
                    // unsent message count
                    this.ConversationUnReadMessageCountBorder.Visibility = Visibility.Visible;
                    this.ConversationUnReadMessageCount.Text             = unSeenMessages.Count().ToString();

                    // last message content
                    var lastMessage = unSeenMessages.Last();
                    if (!string.IsNullOrEmpty(lastMessage.Value.Text))
                    {
                        this.ConversationLastMessage.Text = lastMessage.Value.Text;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(lastMessage.Value.Sticker))
                        {
                            this.ConversationLastMessage.Text = "Sticker...";
                        }
                    }

                    this.ConversationTitle.FontWeight = FontWeights.Bold;
                }
                else
                {
                    this.ConversationUnReadMessageCountBorder.Visibility = Visibility.Hidden;
                    this.ConversationTitle.FontWeight = FontWeights.Regular;
                    this.ConversationLastMessage.Text = Model.Value.Messages.Last().Value.Text == null ? "" : Model.Value.Messages.Last().Value.Text;
                }

                // title
                this.ConversationTitle.Text = Model.Value.Title;
            }
        }
        public void Load()
        {
            if (Model.Value != null)
            {
                FullName.Text      = Model.Value.Fullname;
                Avatar.ImageSource = Ultilities.ConvertBase64StringToBitmapImage(Model.Value.Avatar);

                if (Status == MemberModel.Statuses.Joined)
                {
                    InviteButton.Content   = "Joined";
                    InviteButton.IsEnabled = false;
                }
                else
                if (Status == MemberModel.Statuses.Invited)
                {
                    InviteButton.Content   = "invited";
                    InviteButton.IsEnabled = false;
                }
            }
        }
示例#9
0
 public MessageStickerControl(string source)
 {
     InitializeComponent();
     ImageBehavior.SetAnimatedSource(Sticker, Ultilities.ConvertBase64StringToBitmapImage(source));
 }
示例#10
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;
            }
        }
示例#11
0
        public void Load()
        {
            if (!string.IsNullOrEmpty(ConversationID))
            {
                Model = ConversationService.GetConversationById(ConversationID);
            }

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

                this.LoadedTime = DateTime.Now;
            }

            OnAsyns();
        }