2016-11-19 2 views
1

Я пытаюсь получить контекст непосредственно от контроллера API/Сообщений для наведения диалоговогоКак получить контекст из сообщений API непосредственно

public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
    { 

     if (activity.Type == ActivityTypes.Message) 
     { 
      PromptDialog.Text(context, getText, "GetText"); 
     } 

    } 

Как я могу добиться этого?

ответ

0

Как я знаю, нет правильного прямого способа сделать это. НО, вы можете использовать следующий код, который имеет такую ​​же функциональность, как вы хотите (я надеюсь, что это помогает):

public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
{ 

    if (activity.Type == ActivityTypes.Message) 
    { 
     await Conversation.SendAsync(activity,() => new RootDialog()); 
    } 

} 

[Serializable] 
public class RootDialog : IDialog<string> 
{ 
    public async Task StartAsync(IDialogContext context) 
    { 
     PromptDialog.Text(context, MessageReceived, "How are You?"); 
    } 
    private async Task MessageReceived(IDialogContext context, IAwaitable<string> result) 
    { 
     var message = await result; 
     context.Done(message); 
    } 
} 

В самом деле, это диалог, который работает в качестве оболочки для promptDialog.

Смежные вопросы