简而言之,主要任务是从一个用户接收消息并将其转发给另一个用户。所以我得到了以下结构:
public class ForwardDialog : IDialog<bool>
{
public async Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
}
async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
string ServiceUrl = "http://localhost:56675";
string OriginalMessageSenderName = "Test";
string OriginalMessageSenderId = "TestId";
string OriginalMessageText = "sd";
ChannelAccount BotAccount = new ChannelAccount(
name: "Bot",
id: "default-bot"
);
ChannelAccount UserAccount = new ChannelAccount(
name: "User",
id: "default-user"
);
ConnectorClient ForwardClient = new ConnectorClient(new Uri(ServiceUrl));
ConversationResourceResponse ForwardConversation = ForwardClient.Conversations.CreateDirectConversation(BotAccount, UserAccount);
ForwardMessage.From = BotAccount;
ForwardMessage.Recipient = UserAccount;
ForwardMessage.Conversation = new ConversationAccount(id: ForwardConversation.Id);
ForwardMessage.Text = $"{OriginalMessageSenderName}: {OriginalMessageText}";
ForwardMessage.Locale = "ru-ru";
//ForwardClient.Conversations.SendToConversation((Activity)ForwardMessage);
PromptDialog.Text(context, PostResultAsync, "Reply", "What?", 3);
}
private async Task PostResultAsync(IDialogContext context, IAwaitable<string> prompt)
{
var result = await prompt;
await context.PostAsync($"{result}");
context.Wait(MessageReceivedAsync);
}
}
SendToConversation工作正常,但我需要发送PromptDialog,这就是问题所在。我传递给PromptDialog的上下文向第一个用户发送消息,但我需要它将消息发送到第二个用户。我怎么能这样做?