Exemplo n.º 1
0
        public async Task Send(MessageRequest messageRequest)
        {
            var message = await _messagesService.CreateEntityAsync(messageRequest);

            if (message == null)
            {
                return;
            }

            var createdMessage = await _messagesService.GetEntityByIdAsync(message.Id);

            var usersInChat = await _chatsService.GetUsersByChatIdAsync(createdMessage.ChatId);

            foreach (var userDto in usersInChat)
            {
                // Sending to email
                await SendToEmailIfNeeded(userDto, createdMessage);

                if (!UsersConnections.ContainsKey(userDto.Id))
                {
                    continue;
                }
                foreach (string connectionId in UsersConnections[userDto.Id])
                {
                    await Clients.Client(connectionId).SendAsync("ReceiveMessage", createdMessage);
                }
            }
        }
Exemplo n.º 2
0
        public virtual async Task <ActionResult <MessageDto> > GetById(int id)
        {
            var dto = await _messagesService.GetEntityByIdAsync(id);

            if (dto == null)
            {
                return(NoContent());
            }

            return(Ok(dto));
        }