private async Task <DialogTurnResult> TercerPaso(WaterfallStepContext stepContext)
        {
            ITurnContext context     = stepContext.Context;
            PruebaState  pruebaState = await UserProfileAccessor.GetAsync(context);

            await context.SendActivityAsync("¿ En que te puedo ayudar ?");

            return(await stepContext.EndDialogAsync());
        }
        private async Task <DialogTurnResult> PrimerPaso(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            PruebaState pruebaStateOpt = await UserProfileAccessor.GetAsync(stepContext.Context, () => null);

            if (pruebaStateOpt != null)
            {
                await UserProfileAccessor.SetAsync(stepContext.Context, pruebaStateOpt);
            }

            if (pruebaStateOpt == null)
            {
                await UserProfileAccessor.SetAsync(stepContext.Context, new PruebaState());
            }

            return(await stepContext.NextAsync());
        }
        private async Task <DialogTurnResult> SegundoPaso(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            PruebaState pruebaState = await UserProfileAccessor.GetAsync(stepContext.Context);

            // Logica de negocio necesaria en el flujo.
            if (pruebaState != null)
            {
                PromptOptions opts = new PromptOptions
                {
                    Prompt = new Activity
                    {
                        Type = ActivityTypes.Message,
                        Text = "Hola",
                    },
                };
                return(await stepContext.PromptAsync(SegundoPasoPrompt, opts));
            }

            return(await TercerPaso(stepContext));
        }