2016-11-19 2 views
1

Ich versuche, den Kontext direkt von Controller-API/Nachrichten zu bekommen für einen Dialog mit der AufforderungWie den Kontext von API-Nachrichten erhalten direkt

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

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

    } 

Wie kann ich das erreichen?

Antwort

0

Wie ich weiß, gibt es keinen richtigen direkten Weg, dies zu tun. ABER, können Sie den folgenden Code verwenden, die die gleiche Funktionalität, wie Sie wollen (ich hoffe, das hilft):

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); 
    } 
} 

der Tat, es ist ein Dialog, der für promptDialog als Wrapper funktioniert.

Verwandte Themen