private async Task <DialogTurnResult> PromptForNameStepAsync(
            WaterfallStepContext stepContext,
            CancellationToken cancellationToken)
        {
            var greetingState = await UserProfileAccessor.GetAsync(stepContext.Context);

            if (string.IsNullOrWhiteSpace(greetingState.Name))
            {
                await SpeechService.TextToSpeechAsync("Hi, What is your name?");

                // prompt for name, if missing
                var opts = new PromptOptions
                {
                    Prompt = new Activity
                    {
                        Type = ActivityTypes.Message,
                        Text = "What is your name?",
                    },
                };
                SpeechService.PlaySound();
                return(await stepContext.PromptAsync(NamePrompt, opts));
            }
            else
            {
                return(await stepContext.NextAsync());
            }
        }