Esempio n. 1
0
        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));
            }
        }