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; } }