protected async Task <DialogTurnResult> GetMarket(WaterfallStepContext sc, CancellationToken cancellationToken) { var userState = await UserAccessor.GetAsync(sc.Context, () => new NewsSkillUserState()); // Check if there's already a location if (!string.IsNullOrWhiteSpace(userState.Market)) { return(await sc.NextAsync(userState.Market)); } // Prompt user for location return(await sc.PromptAsync(nameof(TextPrompt), new PromptOptions() { Prompt = await _responder.RenderTemplate(sc.Context, sc.Context.Activity.Locale, MainResponses.MarketPrompt), RetryPrompt = await _responder.RenderTemplate(sc.Context, sc.Context.Activity.Locale, MainResponses.MarketRetryPrompt) })); }