public async Task <MessageDto> SendPersonalMessageAsync(string userId, MessageDataModel messageData) { var otherUser = await _unitOfWork.Users.GetByIdAsync(userId); if (otherUser == null) { throw new ItemNotFoundException("User not found"); } // Find chat with user, or create new one var chatWithUser = await GetChatWithUser(userId) ?? await _chatsService.CreatePersonalAsync(userId); return(await SendMessageInternalAsync(chatWithUser.Id, messageData)); }