public async Task <HttpResponseMessage> Send([FromBody] MessageSendRequestDto messageSendRequestDto) { var processedMessage = messageProcessor.Process(new InputMessageDto { Content = messageSendRequestDto.Content }); notifySubscriber.NotifyAll(processedMessage); return(Request.CreateResponse(HttpStatusCode.OK)); }
public MessageSendResponseDto Send(MessageSendRequestDto request) { int chatId; if (request.ChatId == null) { var receiver = UserManager.GetUserById(request.UserId.Value); chatId = ChatManager.GetOrCreateChatWithUser(request.User, receiver).ChatId; } else { chatId = request.ChatId.Value; } var chat = ChatManager.GetChatById(chatId); var message = new Message { Author = request.User, Chat = chat, Text = request.Text }; MessageProvider.Add(message); MessageProvider.SaveChanges(); var chatDto = Mapper.Map <Chat, ChatDto>(chat); var messageDto = Mapper.Map <Message, MessageDto>(message); var userDto = Mapper.Map <User, UserDto>(request.User); MessageHub.Publish(new NotificationDto { Type = NotificationType.CreateMessage, TargetChatId = chatId, TargetUserId = request.UserId } .AddEntity(messageDto) .AddEntity(chatDto) .AddEntity(userDto) ); return(new MessageSendResponseDto() .AddEntity(messageDto) .AddEntity(chatDto)); }
public MessageSendResponseDto Send([FromBody] MessageSendRequestDto request) => MessageService.Send(request);