コード例 #1
0
 internal static ChatMessage ToEntity(this SendChatMessageCommand sendChatMessageCommand, string userName)
 {
     return(new ChatMessage()
     {
         Message = sendChatMessageCommand.Message,
         SendDate = DateTime.UtcNow,
         Username = userName
     });
 }
コード例 #2
0
        public async Task <SentMessage> SendMessage(SendChatMessageCommand command)
        {
            var userEmail = this.User.Claims.ElementAt(0).Value;
            var message   = await this._chatHandler.SendMessage(command, userEmail);

            await this._chatHubContext.Clients.All.SendAsync("UserSentMessage", message);

            return(message);
        }
コード例 #3
0
        public async Task <SentMessage> SendMessage(SendChatMessageCommand command, string userName)
        {
            var newChatMessage = command.ToEntity(userName);

            this._chatContext.ChatMessages.Add(newChatMessage);
            await this._chatContext.SaveChangesAsync();

            return(newChatMessage.ToDTO());
        }
コード例 #4
0
        private void messageTextBox_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode != Keys.Enter)
            {
                return;
            }

            var message = new SendChatMessageCommand {
                MessageText = messageTextBox.Text, SenderName = GetUserName()
            };

            _session.Send(message);

            messageTextBox.ResetText();
        }
コード例 #5
0
        public bool SendChatMessage(VATRPChat chat, string message, ref IntPtr msgPtr)
        {
            if (chat == null)
                return false;

            lock (messagingLock)
            {
                IntPtr chatPtr = LinphoneAPI.linphone_core_get_chat_room_from_uri(linphoneCore, chat.Contact.ID);
                chat.NativePtr = chatPtr;

                msgPtr = LinphoneAPI.linphone_chat_room_create_message(chat.NativePtr, message);
                LinphoneAPI.linphone_chat_message_ref(msgPtr);
            }
            if (msgPtr != IntPtr.Zero)
            {
                var cmd = new SendChatMessageCommand(msgPtr, chat.NativePtr);
                lock (commandQueue)
                {
                    commandQueue.Enqueue(cmd);
                }
            }

            return true;
        }