Exemplo n.º 1
0
        public async Task MulticastItemMessagesAsync(IList <ItemLookUpResult.Item> itemList)
        {
            int count = 0;
            List <ISendMessage> messageList = new List <ISendMessage>();

            while (count < itemList.Count)
            {
                messageList.Clear();

                // 한번에 보낼 수 있는 건 5개.
                for (int i = 0; i < 5; ++i)
                {
                    if (count >= itemList.Count)
                    {
                        break;
                    }

                    // 캐러셀 하나에는 10개까지...인데 그럼 한번에 50개 보낼 수 있는건가?
                    string altText = itemList[count].title;
                    if (count < itemList.Count - 1)
                    {
                        altText += " 외";
                    }
                    CarouselContainerFlexMessage carouselMessage = FlexMessage.CreateCarouselMessage(altText);

                    for (int j = 0; j < 10; ++j)
                    {
                        if (count >= itemList.Count)
                        {
                            break;
                        }

                        BubbleContainer container = itemList[count].ToBubbleContainer();
                        carouselMessage.AddBubbleContainer(container);

                        count++;
                    }

                    messageList.Add(carouselMessage);
                }

                if (messageList.Count > 0)
                {
                    await MulticastMessagesAsync(messageList);
                }
            }
        }
Exemplo n.º 2
0
        private async Task ReplyFlexWithMethodChaine(MessageEvent ev)
        {
            var restrant = CreateRestrantBubbleContainer();
            var news     = CreateNewsBubbleContainer();
            var receipt  = CreateReceiptBubbleContainer();

            var flex = FlexMessage.CreateCarouselMessage("Carousel Message")
                       .AddBubbleContainer(restrant)
                       .AddBubbleContainer(news)
                       .AddBubbleContainer(receipt)
                       .SetQuickReply(new QuickReply(new[]
            {
                new QuickReplyButtonObject(new CameraTemplateAction("Camera")),
                new QuickReplyButtonObject(new LocationTemplateAction("Location"))
            }));

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new[] { flex });
        }
        private async Task ReplyFlexWithExtensions(MessageEvent ev)
        {
            var restrant = CreateRestrantWithObjectInitializer();
            var news     = CreateNewsWithExtensions();
            var receipt  = CreateReceiptWithExtensions();

            var bubble = FlexMessage.CreateBubbleMessage("Bubble Message")
                         .SetBubbleContainer(restrant);

            var carousel = FlexMessage.CreateCarouselMessage("Carousel Message")
                           .AddBubbleContainer(restrant)
                           .AddBubbleContainer(news)
                           .AddBubbleContainer(receipt)
                           .SetQuickReply(new QuickReply(new[]
            {
                new QuickReplyButtonObject(new CameraTemplateAction("Camera")),
                new QuickReplyButtonObject(new LocationTemplateAction("Location"))
            }));

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new FlexMessage[] { bubble, carousel });
        }