Exemple #1
0
        public async Task CatalogFetchIntent(IDialogContext context, LuisResult result)
        {
            switch (result.Query)
            {
            case ProductDocument.SHOW_ME_MORE:
                // means customer click on show me more
                var message = context.MakeMessage();
                message.Attachments.Add(tproducts[0].GetProductCard(ProductDocument.FULL));
                await context.PostAsync(message);

                //context.Wait(this.MessageReceived);
                break;

            case ProductDocument.FLUSH:
                await FlushProducts(context);

                break;

            case ProductDocument.FETCH_BY_MAIL:
                if (MyLead != null && MyLead.IsLead())
                {
                    //await Utilities.AddMessageToQueueAsync(MyLead.ToMessage());
                    await context.PostAsync($"A request was sent to our communication auto-broker to the address:{MyLead.Email} provided.");
                }
                else
                {
                    Action = Lead.SEARCH;
                    context.Call(new DetailsDialog(), this.ResumeAfterForm);
                }

                // await context.PostAsync($"so be it, but i will need the mail");
                //await context.Forward(new GenericDetailDialog("Email"), this.ResumeAfterEmail,context.Activity, CancellationToken.None);
                break;

            case ProductDocument.HIGHLIGHT:
                var message1 = context.MakeMessage();
                message1.Attachments.Add(tproducts[0].GetProductCard(ProductDocument.HIGHLIGHT));
                await context.PostAsync(message1);

                //context.Wait(this.MessageReceived);
                break;

            default: break;
            }
        }