private async Task ResumeAfterQnaMakerDialog(IDialogContext context, IAwaitable <object> result) { var messageResult = await result; if (messageResult.ToString().ToLower().Contains("nomatch")) { var messageActivity = context.MakeMessage(); await context.PostAsync(MessageUtility.GetSimpleTextMessage(messageActivity, "We could not find answer to your question")); await context.PostAsync(GetMessage(context, "")); await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity, "Or you can look for more options below")); context.Done("null"); } else if (messageResult.ToString().ToLower().Contains("retailer")) { await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity, "Looking for")); context.Done("null"); } else { context.Wait(MessageReceivedAsync); } }
private async Task ResumeAfterCommonResponseDialog(IDialogContext context, IAwaitable <CommonResponseResult> result) { var messageHandled = await result as CommonResponseResult; if (messageHandled != null && messageHandled.IsMessageHandled && messageHandled.Message.ToLower().Contains("animals")) { context.Call(new BasicQnAMakerDialog(), ResumeAfterQnaMakerDialog); await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity, "Are you looking for")); } }
private async Task ResumeAfterFormDialog(IDialogContext context, IAwaitable <object> result) { RetailerFinderFormDialog msgResult = null; try { msgResult = (RetailerFinderFormDialog)await result; } catch (Exception) { } if (msgResult != null && msgResult.ResultCount > 0) { await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity.AsMessageActivity(), "Hope you find your retailers. Please select if you are looking for FAQ")); } else { await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity.AsMessageActivity(), $"We could not find retailers for your location. Please try with another Zip/City/State by selecting 'Retailer Finder'.")); } context.Wait(MessageReceivedAsync); }
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { var message = await result; try { if (message.Text.ToLower().Contains("retailer finder")) { try { await context.Forward(Chain.From(() => FormDialog.FromForm(RetailerFinderFormDialog.BuildForm)), ResumeAfterFormDialog, message, CancellationToken.None); } catch (Exception) { await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity.AsMessageActivity(), $"We could not find retailers for your location. Please try with another Zip/City/State by selecting 'Retailer Finder'.")); context.Wait(MessageReceivedAsync); } } else if (message.Text.ToLower().Contains("faq")) { await context.PostAsync(MessageUtility.GetSimpleTextMessage(context.MakeMessage(), "Please enter your question")); await context.Forward(new BasicQnAMakerDialog(), ResumeAfterQnaMakerDialog, message, CancellationToken.None); } else { await context.Forward(new CommonResponsesDialog(), ResumeAfterCommonResponseDialog, message, CancellationToken.None); } } catch (Exception ex) { //await context.PostAsync(ex.Message); //context.Wait(MessageReceivedAsync); } }
public async Task HandleNo(IDialogContext context, string messageText) { var messageActivity = context.MakeMessage(); messageActivity.Attachments = new List <Attachment>(); AdaptiveCard card = new AdaptiveCard(); card.Body.Add(new TextBlock() { Text = "If you are looking for something else, you can always navigate to the following link:", Size = TextSize.Large, Weight = TextWeight.Normal, Wrap = true }); // Add buttons to the card. card.Actions.Add(new OpenUrlAction() { Url = "http://tst2.purinamills.com/", Title = "Purina FAQ", }); Attachment attachment = new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }; messageActivity.Attachments.Add(attachment); await context.PostAsync(messageActivity); await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)messageActivity, "Or you can always search for FAQ's by selecting FAQ")); context.Wait(MessageReceived); }
public async Task HandleGreeting(IDialogContext context, string messageText) { await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity, Resources.ChatBot.GreetingsMessage)); context.Wait(MessageReceived); }