Exemple #1
0
        public async Task Send(IList <ClusterDto> clusters)
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var facebookSender       = new SendFacebookTemplate(_context);
                var listFacebookTemplate = new PromoClustersListCardFacebookTemplate(clusters, MessagesResource.CategoriesListCardTitle).GetTemplate();
                await facebookSender.Send(listFacebookTemplate);

                break;
            }

            default:
            {
                var defaultSender = new SendCardToConversation(_context);
                var listHeroCard  = new PromoClustersListCard(clusters, MessagesResource.CategoriesListCardTitle);
                await defaultSender.SendCard(listHeroCard);

                break;
            }
            }
        }
        public async Task Send()
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var facebookSender       = new SendFacebookTemplate(_context);
                var listFacebookTemplate = new ListChooseCardFacebookTemplate(MessagesResource.AskWhatListUse).GetTemplate();
                await facebookSender.Send(listFacebookTemplate);

                break;
            }

            default:
            {
                var defaultSender  = new SendCardToConversation(_context);
                var listChooseCard = new ListChooseCard(MessagesResource.AskWhatListUse);
                await defaultSender.SendCard(listChooseCard);

                break;
            }
            }
        }
Exemple #3
0
        public async Task StartAsync(IDialogContext context)
        {
            var channel = context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var name    = "FirstName SecondName";
                var message = string.Format(MessagesResource.Greeting, name);

                var facebooksender           = new SendFacebookTemplate(context);
                var greetingFacebookTemplate = new GreetingFacebookTemplate(message).GetTemplate();
                await facebooksender.Send(greetingFacebookTemplate);

                break;
            }

            default:
            {
                var name    = context.Activity.From.Name;
                var message = string.Format(MessagesResource.Greeting, name);

                var sender = new SendCardToConversation(context);
                var greatingDefaultTemplate = new GreetingCard(message);
                await sender.SendCard(greatingDefaultTemplate);

                break;
            }
            }

            context.Wait(MessageReceivedAsync);
        }
        public async Task Send()
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var facebooksender           = new SendFacebookTemplate(_context);
                var greetingFacebookTemplate = new GreetingFacebookTemplate(MessagesResource.GreetingVariant).GetTemplate();
                await facebooksender.Send(greetingFacebookTemplate);

                break;
            }

            default:
            {
                var sender = new SendCardToConversation(_context);
                var greatingDefaultTemplate = new GreetingCard(MessagesResource.GreetingVariant);
                await sender.SendCard(greatingDefaultTemplate);

                break;
            }
            }
        }
Exemple #5
0
        public async Task Send(IList <ProductDto> products)
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
            {
                var facebookSender       = new SendFacebookTemplate(_context);
                var listFacebookTemplate = new ListCardFacebookTemplate(products).GetTemplate();
                await facebookSender.Send(listFacebookTemplate);

                break;
            }

            default:
            {
                var defaultSender = new SendCardToConversation(_context);
                var listHeroCard  = new ListCard(products);
                await defaultSender.SendCard(listHeroCard);

                break;
            }
            }
        }
Exemple #6
0
        public async Task Send(string message)
        {
            var channel = _context.Activity.ChannelId;

            switch (channel)
            {
            case "facebook":
                var facebookSender          = new SendFacebookTemplate(_context);
                var yesOrNoFacebookTemplate = new YesOrNoFacebookTemplate(message).GetTemplate();
                await facebookSender.Send(yesOrNoFacebookTemplate);

                break;

            default:
                var defaultSender = new SendCardToConversation(_context);
                var yesOrNoCard   = new YesOrNoCard(message);
                await defaultSender.SendCard(yesOrNoCard);

                break;
            }
        }
        public async Task GetTask(IDialogContext context, IAwaitable <IMessageActivity> result)
        {
            try
            {
                var userResponse = await result;

                var channel = context.Activity.ChannelId;

                var shoppingListId = context.UserData.GetValue <Guid>("CurrentShoppingListId");

                var shoppingItems = new List <ShoppingItemDto>()
                {
                    new ShoppingItemDto()
                    {
                        CategoryId  = 3034,
                        Color       = Pin.Gray,
                        Description = "pasta",
                        Id          = context.UserData.Get <Guid>("CurrentShoppingListId")
                    },
                    new ShoppingItemDto()
                    {
                        CategoryId  = 3034,
                        Color       = Pin.Gray,
                        Description = "vino",
                        Id          = context.UserData.Get <Guid>("CurrentShoppingListId")
                    },
                    new ShoppingItemDto()
                    {
                        CategoryId  = 3034,
                        Color       = Pin.Gray,
                        Description = "pizza",
                        Id          = context.UserData.Get <Guid>("CurrentShoppingListId")
                    }
                };

                var luisResult = await LuisHelper.GetIntentAndEntitiesFromLUIS(userResponse.Text);

                var showLabel = false;

                switch (luisResult.TopScoringIntent.Intent)
                {
                case LuisIntent.Yes:
                case LuisIntent.No:
                {
                    if (luisResult.TopScoringIntent.Intent == LuisIntent.Yes)
                    {
                        showLabel = true;

                        switch (channel)
                        {
                        case "facebook":
                            var facebookSender        = new SendFacebookTemplate(context);
                            var imageFacebookTemplate = new ImageFacebookTemplate($"image.jpeg", false).GetTemplate();
                            await facebookSender.Send(imageFacebookTemplate);

                            break;

                        default:
                            var defaultSender = new SendCardToConversation(context);
                            var imageCard     = new ImageCard($"image.jpeg");
                            await defaultSender.SendCard(imageCard);

                            break;
                        }
                    }

                    if (shoppingItems.Count == 0)
                    {
                        await context.PostAsync(MessagesResource.EmptyShoppingList);
                    }
                    else
                    {
                        await context.PostAsync(MessagesResource.ShowShoppingListReview);

                        var sb = new StringBuilder();

                        foreach (var item in shoppingItems)
                        {
                            var label = $"{(!string.IsNullOrEmpty(item.Label) ? "[" + item.Label + "] " : string.Empty)}";

                            sb.Append($"{(showLabel ? label : string.Empty)}{item.Description}" + "\n\n");
                        }

                        await context.PostAsync(sb.ToString());
                    }

                    context.Call(_dialogFactory.Create <OpeningHoursDialog>(), Callback);

                    break;
                }

                default:
                {
                    var handler = new HandleUserIncorrectInput(context);

                    if (handler.CheckCounterErrors())
                    {
                        await handler.UserErrorLimitExceeded();

                        context.Call(_dialogFactory.Create <GreetingDialog>(), Callback);
                    }
                    else
                    {
                        await context.PostAsync(MessagesResource.CourtesyChooseError);

                        var sender = new SendCorrectYesOrNoCard(context);
                        await sender.Send(MessagesResource.AskIfWantSeePosition);

                        context.Wait(GetTask);
                    }
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                await context.PostAsync(MessagesResource.CourtesyError);

                context.Call(_dialogFactory.Create <GreetingDialog>(), Callback);
            }
        }