Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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"));
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        public async Task HandleGreeting(IDialogContext context, string messageText)
        {
            await context.PostAsync(MessageUtility.GetWelcomeOptionsMessage((Activity)context.Activity, Resources.ChatBot.GreetingsMessage));

            context.Wait(MessageReceived);
        }