public Task <IList <Document> > ParseAsync(QueryResponse queryResponse, MessageDescriptor messageDescriptor)
        {
            DocumentCollection documentCollection = null;

            var cardMessageCollection = queryResponse.ToCards();

            if (cardMessageCollection != null)
            {
                documentCollection = new DocumentCollection
                {
                    ItemType = DocumentSelect.MediaType,
                    Items    = new DocumentSelect[cardMessageCollection.Count],
                    Total    = cardMessageCollection.Count
                };

                for (int i = 0; i < cardMessageCollection.Count; i++)
                {
                    documentCollection.Items[i] = new DocumentSelect
                    {
                        Header  = GetHeader(cardMessageCollection[i]),
                        Options = GetOptions(cardMessageCollection[i])
                    };
                }
            }

            return(Task.FromResult <IList <Document> >(new List <Document>()
            {
                documentCollection
            }));
        }
示例#2
0
        private Document GetCardMessage(QueryResponse queryResponse)
        {
            DocumentCollection documentCollection = null;

            var cardMessageCollection = queryResponse.ToCards();

            if (cardMessageCollection != null)
            {
                documentCollection = new DocumentCollection
                {
                    ItemType = DocumentSelect.MediaType,
                    Items    = new DocumentSelect[cardMessageCollection.Count],
                    Total    = cardMessageCollection.Count
                };

                for (int i = 0; i < cardMessageCollection.Count; i++)
                {
                    documentCollection.Items[i] = new DocumentSelect
                    {
                        Header  = GetHeader(cardMessageCollection[i]),
                        Options = GetOptions(cardMessageCollection[i])
                    };
                }
            }

            return(documentCollection);
        }
        public Task <IList <Activity> > ParseAsync(QueryResponse queryResponse, MessageDescriptor messageDescriptor)
        {
            Activity activity = null;

            var cardActions = new List <CardAction>();

            var cardMessageCollection = queryResponse.ToCards();

            if (cardMessageCollection != null)
            {
                activity                  = new Activity();
                activity.Attachments      = new List <Attachment>();
                activity.AttachmentLayout = AttachmentLayoutTypes.Carousel;

                foreach (var cardMessage in cardMessageCollection)
                {
                    var cardButtons = new List <CardAction>();

                    foreach (var button in cardMessage.Buttons)
                    {
                        cardButtons.Add(new CardAction
                        {
                            Title = button.Text,
                            Type  = button.ToCardActionType(),
                            Value = button.Postback
                        });
                    }

                    var heroCard = new HeroCard()
                    {
                        Title    = cardMessage.Title,
                        Subtitle = cardMessage.Subtitle,
                        Images   = new List <CardImage>()
                        {
                            new CardImage
                            {
                                Url = cardMessage.ImageUrl
                            }
                        },
                        Buttons = cardButtons
                    };

                    Attachment attachment = heroCard.ToAttachment();
                    activity.Attachments.Add(attachment);
                }
            }

            return(Task.FromResult <IList <Activity> >(new List <Activity>()
            {
                activity
            }));
        }