Example #1
0
        protected override async Task <DialogTurnResult> AfterTokenRecdAsync(WaterfallStepContext step, CancellationToken cancellationToken)
        {
            try
            {
                var bot = step.Context.TurnState.Get <ActivityBotBase>("bot");

                var conversationStateProp = bot.ConversationState.CreateProperty <int>("counter");
                var counter = await conversationStateProp.GetAsync(step.Context, () => 0, cancellationToken);

                if (counter == 0)
                {
                    var attachments = new List <Attachment>();

                    // Reply to the activity we received with an activity.
                    var reply = MessageFactory.Attachment(attachments);
                    reply.Attachments.Add(DialogHelpers.CreateBotFunctionsCard("This is what I can do for you", bot).ToAttachment());

                    await step.Context.SendActivityAsync(reply, cancellationToken);
                }
                counter++;
                await conversationStateProp.SetAsync(step.Context, counter);
            }
            catch (Exception ex)
            {
                await step.Context.SendActivityAsync(MessageFactory.Text("Error occured."), cancellationToken);

                Trace.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
            }
            return(Dialog.EndOfTurn);
        }