Ejemplo n.º 1
0
        public async Task SendMessage(SendMessageRequest request)
        {
            var(authorId, authorName, groupId, content) = request;
            var message = new ChatMessage(
                MessageId: Guid.NewGuid(),
                Timestamp: DateTimeOffset.UtcNow,
                GroupId: groupId,
                AuthorId: authorId,
                AuthorUsername: authorName,
                Content: content
                );
            await Clients.Group(groupId.ToString())
            .SendAsync("message-received", message);

            await chatDb.AddMessage(message);
        }
Ejemplo n.º 2
0
        public async Task <SendMessagePayload> SendMessage(
            SendMessageInput input,
            [Service] IMessageDb messageDb,
            [Service] ITopicEventSender eventSender
            )
        {
            var(authorId, groupId, authorName, content) = input;
            var message = new ChatMessage(
                MessageId: Guid.NewGuid(),
                Timestamp: DateTimeOffset.UtcNow,
                GroupId: groupId,
                AuthorId: authorId,
                AuthorUsername: authorName,
                Content: content
                );
            await eventSender.SendAsync(new Topic.NewMessage(groupId), message);

            await messageDb.AddMessage(message);

            return(new SendMessagePayload(message));
        }