예제 #1
0
 public SentMessageControl(UnsentMessageModel model)
 {
     InitializeComponent();
     this.HorizontalAlignment = HorizontalAlignment.Right;
     Load(model);
     SendMessageAsync(model);
 }
예제 #2
0
        private void _EventClickSendMessage(object sender, RoutedEventArgs e)
        {
            List <MessageUploadFileModel> Files = new List <MessageUploadFileModel>();

            foreach (UploadFileControl file in MessageFilesContainer.Children)
            {
                Files.Add(file.Model);
            }

            List <MessageUploadFileModel> Images = new List <MessageUploadFileModel>();

            foreach (UploadImageControl file in MessageImagesContainer.Children)
            {
                Images.Add(file.Model);
            }

            UnsentMessageModel message = new UnsentMessageModel()
            {
                UserID         = Service.UserID,
                ConversationID = Model.Key,
                Text           = ConversationInput.Text,
                Files          = Files,
                Images         = Images,
            };

            this.MessageContainer1.Children.Add(new SentMessageControl(message));

            // reset input
            ResetMessageInput();
        }
예제 #3
0
        public static async Task <string> SendMessageToConversationAsync(UnsentMessageModel model)
        {
            if (model != null)
            {
                var rsp = await Client.PushAsync("Conversations/" + model.ConversationID + "/Messages", model.ConvertToMessageModel());

                if (rsp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    Changed(model.ConversationID);
                    return(rsp.Result.name);
                }
            }

            return(null);
        }
예제 #4
0
        private async Task SendMessageAsync(UnsentMessageModel model)
        {
            var messageId = await ConversationService.SendMessageToConversationAsync(model);

            if (!string.IsNullOrEmpty(messageId))
            {
                SentLoading.Visibility = Visibility.Collapsed;
                SendTime.Visibility    = Visibility.Visible;
                SendTime.Text          = "28/11/2020";
                // update message id
                Model = new KeyValuePair <string, MessageModel>(messageId, Model.Value);
            }
            else
            {
                SentLoading.Visibility = Visibility.Collapsed;
                SendTime.Visibility    = Visibility.Visible;
                SendTime.Text          = "Error";
                // update message id
                Model = new KeyValuePair <string, MessageModel>(null, Model.Value);
            }
        }
예제 #5
0
        private void Load(UnsentMessageModel model)
        {
            if (model != null)
            {
                Model = new KeyValuePair <string, MessageModel>(null, model.ConvertToMessageModel());

                if (!string.IsNullOrEmpty(model.Sticker))
                {
                    MessageEmojiContainer.Children.Add(new MessageStickerControl(model.Sticker));
                }
                else
                {
                    if (model.Images != null)
                    {
                        foreach (MessageUploadFileModel file in model.Images)
                        {
                            this.MessageImagesContainer.Children.Add(new MessageImageControl(file));
                        }
                    }

                    if (model.Files != null)
                    {
                        foreach (MessageUploadFileModel file in model.Files)
                        {
                            this.MessageFilesContainer.Children.Add(new MessageFileControl(file));
                        }
                    }

                    if (!string.IsNullOrEmpty(model.Text))
                    {
                        MessageTextContainer.Child = new TextBox()
                        {
                            Text = Model.Value.Text
                        };
                    }
                }
            }
        }
예제 #6
0
        private void _EventClickSendMessage(object sender, RoutedEventArgs e)
        {
            List <MessageUploadFileModel> files = new List <MessageUploadFileModel>();

            foreach (UploadFileControl file in MessageFilesContainer.Children)
            {
                files.Add(file.Model);
            }

            List <MessageUploadFileModel> images = new List <MessageUploadFileModel>();

            foreach (UploadImageControl file in MessageImagesContainer.Children)
            {
                images.Add(file.Model);
            }

            UnsentMessageModel message = new UnsentMessageModel()
            {
                UserID         = Service.UserID,
                ConversationID = Model.Key,
                Text           = ConversationInput.Text,
                Files          = files,
                Images         = images,
            };

            // send
            if (files.Count > 0 || images.Count > 0 || !string.IsNullOrEmpty(ConversationInput.Text))
            {
                this.MessageContainer1.Children.Add(new SentMessageControl(message));
            }

            this.ConversationScrollContainer.ScrollToEnd();

            // reset input
            ResetMessageInput();
        }