public async Task SendMessage(SendMessageInput input) { if (!input.From.HasValue || !input.To.HasValue) { throw new UserFriendlyException(L("NoUserDetected")); } var from = await UserManager.GetUserByIdAsync(input.From.Value); var to = await UserManager.GetUserByIdAsync(input.To.Value); var id = await _chatManager.CreateConversation(from, to, AbpSession.TenantId); var conversation = _chatManager.Conversations.FirstOrDefault(a => a.Id == id); var msId = await _chatManager.AddMessage(conversation, from, input.Message); if (msId != 0) { await _chatMessageSender.PublishMessage( new ChatData(from.MapTo <UserOutput>(), to.MapTo <UserOutput>(), id, input.Message)); } }