Пример #1
0
        /// <summary>
        /// creates a new message in the database
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        internal async Task SaveMessage(ChatMessageVm message)
        {
            var dbMessage = message.ToDbMessage();

            dbContext.ChatMessages.Add(dbMessage);
            await dbContext.SaveChangesAsync();

            message.Index = dbMessage.Id;
        }
Пример #2
0
        public async Task <IActionResult> SendMessage([FromBody] ChatMessageVm message)
        {
            if (message == null || string.IsNullOrWhiteSpace(message.Message) ||
                string.IsNullOrWhiteSpace(message.FromUser) ||
                string.IsNullOrWhiteSpace(message.ToUser)
                )
            {
                return(BadRequest());
            }

            await repository.SaveMessage(message);

            await messageSender.SendMessage(message.ToPublicMessage());

            return(Ok());
        }
Пример #3
0
        public async Task SendMessage(ChatMessageVm message)
        {
            if (message == null || string.IsNullOrWhiteSpace(message.Message) ||
                string.IsNullOrWhiteSpace(message.FromUser) ||
                string.IsNullOrWhiteSpace(message.ToUser)
                )
            {
                logger.LogInformation("Bad request arrived");
                return;
            }

            await repository.SaveMessage(message);

            await messageSender.SendMessage(message.ToPublicMessage());

            logger.LogInformation("Request is processed Ok");
        }
Пример #4
0
 public async void Send(string userId, ChatMessageVm chatMessageVm)
 {
     await Clients.User(userId).SendAsync("send", chatMessageVm);
 }
Пример #5
0
 public async Task <IActionResult> AddMessage([FromBody] ChatMessageVm chatMessageVm) =>
 Ok(await _chatService.AddMessage(chatMessageVm));