public IActionResult AddChat([FromBody] ChatMessagesRequest chatRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var chats = new ChatMessages(chatRequest);

            _context.ChatMessages.Add(chats);
            _context.Commit();
            return(Ok(new { msg = "Chat added" }));
        }
Esempio n. 2
0
        public async Task Login(string name)
        {
            var request = new ChatMessagesRequest()
            {
                UserLogin = new UserLogin()
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = name
                }
            };

            await call.RequestStream.WriteAsync(request);

            await AppendLineToChatBox($"You joined the chat.");
        }
Esempio n. 3
0
        public void SendChatMessage(ChatMessagesRequest data)
        {
            List <int> listId = new List <int> ();

            listId.Add(data.SenderId);
            listId.Add(data.ReceiverId);

            List <MUser> listUser = _dbcontext.MUser.Where(x => listId.Contains(x.Id)).ToList();
            var          sender   = listUser.FirstOrDefault(x => x.Id == data.SenderId);
            var          receiver = listUser.FirstOrDefault(x => x.Id == data.ReceiverId);

            ChatMessages chatMessage = new ChatMessages()
            {
                Date       = DateTime.UtcNow,
                ReceiverId = receiver.Id,
                SenderId   = sender.Id,
                RoomId     = data.RoomId,
                Message    = data.Message,
                IsRead     = false,
            };

            _dbcontext.ChatMessages.Add(chatMessage);
            _dbcontext.Commit();

            if (receiver.SocketId == null && sender.PushId != null)
            {
                NotificationRequest body = new NotificationRequest()
                {
                    Body  = "New chat message from " + sender.Name,
                    Title = "New chat message",
                };

                NotificationRequestToTopic request = new NotificationRequestToTopic(body, receiver.PushId);
                request.data.newChat = "True";
                string jsonBody = JsonConvert.SerializeObject(request);
                PushNotificationService.sendPushNotification(jsonBody);
            }
            else if (receiver.SocketId != null)
            {
                Clients.Client(receiver.SocketId).SendAsync("send:chat", new { msg = "Chat Received", roomId = data.RoomId, chat = data.Message, dateTime = chatMessage.Date });
            }
        }
Esempio n. 4
0
        /// <summary>
        ///     Send our message.
        /// </summary>
        private async Task SendMessage()
        {
            // If we have tried to send a zero length string we just return
            if (messageText.Text == string.Empty)
            {
                return;
            }

            var request = new ChatMessagesRequest()
            {
                ChatMessage = new ChatMessage()
                {
                    Id      = userId,
                    Message = messageText.Text
                }
            };

            outgoingMessages.Add(request, cancellationTokenSource.Token);

            var responseToMe = new ChatMessagesResponse()
            {
                SendFromUserId   = userId,
                SendFromUserName = userName,
                ChatMessage      = request.ChatMessage
            };

            await OutputMessage(responseToMe);

            /*
             * var random = new Random();
             * while (true)
             * {
             *      var randomMessage = random.Next(1, 1000);
             *      await SendMessageOverTheWire(randomMessage.ToString());
             *      await Task.Delay(2);
             * }
             */

            messageText.Clear();
        }