// TODO: Add LUIS for natural language processing private FreeTextResponse HandleResponse(DialogContext stepContext) { string utterance = stepContext.Context.Activity.Text; // What did they say? // TODO: add LUIS service to process free text responses // string intent = Luis.GetIntention(); // What did they mean? bool skipped = utterance.Equals("skip", StringComparison.OrdinalIgnoreCase); var feedbackResponse = new FreeTextResponse { Question = this.PromptText, Answer = utterance, Score = !skipped ? this.PointsAvailable : 0, }; return(feedbackResponse); }
private async Task <DialogTurnResult> SendResponseAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { UserProfile userProfile = await this.state.UserProfile.GetAsync( stepContext.Context, () => new UserProfile(), cancellationToken); userProfile.SurveyState.Progress = ProgressState.InProgress; FreeTextResponse feedbackResponse = this.HandleResponse(stepContext); userProfile.SurveyState.Responses.Add(feedbackResponse); await this.Responses.Create( stepContext.Context, userProfile.SurveyState, this.botSettings, this.features, cancellationToken); // Ask next question return(await stepContext.NextAsync(cancellationToken : cancellationToken)); }