Beispiel #1
0
                public override BaseChatDataItem CreateDataItem(ChatMessage message)
                {
                    ChatTextMessage textMessage = message as ChatTextMessage;

                    if (textMessage != null)
                    {
                        return(new TextMessageDataItem(textMessage));
                    }
                    ChatMediaMessage mediaMessage = message as ChatMediaMessage;

                    if (mediaMessage != null)
                    {
                        return(new MediaMessageDataItem(mediaMessage));
                    }
                    ChatCardMessage cardMessage = message as ChatCardMessage;

                    if (cardMessage != null)
                    {
                        return(new CardMessageDataItem(cardMessage));
                    }
                    ChatCarouselMessage carouselMessage = message as ChatCarouselMessage;

                    if (carouselMessage != null)
                    {
                        return(new CarouselMessageDataItem(carouselMessage));
                    }
                    return(base.CreateDataItem(message));
                }
Beispiel #2
0
        public virtual BaseChatDataItem CreateDataItem(ChatMessage message)
        {
            ChatTextMessage message1 = message as ChatTextMessage;

            if (message1 != null)
            {
                return((BaseChatDataItem) new TextMessageDataItem(message1));
            }
            ChatMediaMessage message2 = message as ChatMediaMessage;

            if (message2 != null)
            {
                return((BaseChatDataItem) new MediaMessageDataItem(message2));
            }
            ChatCardMessage message3 = message as ChatCardMessage;

            if (message3 != null)
            {
                return((BaseChatDataItem) new CardMessageDataItem(message3));
            }
            ChatCarouselMessage message4 = message as ChatCarouselMessage;

            if (message4 != null)
            {
                return((BaseChatDataItem) new CarouselMessageDataItem(message4));
            }
            return((BaseChatDataItem)null);
        }
Beispiel #3
0
        private void RenderCarousel(Activity activity)
        {
            List <ChatImageCardDataItem> cards = new List <ChatImageCardDataItem>();

            foreach (Attachment attachment in activity.Attachments)
            {
                if (attachment.ContentType != "application/vnd.microsoft.card.hero")
                {
                    continue;
                }

                HeroCard heroCard = JsonConvert.DeserializeObject <HeroCard>(attachment.Content.ToString());

                List <ChatCardAction> actions = new List <ChatCardAction>();

                foreach (var action in heroCard.Buttons)
                {
                    ChatCardAction cardAction = new ChatCardAction(action.Title, null, action.Value);
                    actions.Add(cardAction);

                    if (!string.IsNullOrEmpty(action.Image))
                    {
                        this.DownloadImageAsync(cardAction, action.Image);
                    }
                }

                ChatImageCardDataItem card = new ChatImageCardDataItem(null, heroCard.Title, heroCard.Subtitle, heroCard.Text, actions, null);
                cards.Add(card);

                if (heroCard.Images != null && heroCard.Images.Count > 0)
                {
                    this.DownloadImageAsync(card, heroCard.Images[0].Url);
                }
            }

            ChatCarouselMessage message = new ChatCarouselMessage(cards, this.BotAuthor, DateTime.Now);

            this.radChat1.ChatElement.AddMessage(message);
        }
Beispiel #4
0
            // Chat Cards / Carousel

            public void Add_CarouselMessage(RadChat radchat)
            {
                Telerik.WinControls.UI.ChatImageCardDataItem imageCard = new ChatImageCardDataItem(Image1.ToImage(),
                                                                                                   "Benjamin Vilanders", "Senior Architect",
                                                                                                   "As a Senior Architect his experience in the industry allows him to take on increased responsibility. Like other architects, he design buildings " +
                                                                                                   "and makes sure they are structurally sound. Due to his track record of quality performance, Benjamin also serves as a manager, a mentor, an advisor and coordinator.",
                                                                                                   null, null);

                ChatProductCardDataItem productCard = new ChatProductCardDataItem(Image2.ToImage(),
                                                                                  "Arrive & Drive", "Rating 7/10",
                                                                                  "With our Arrive & Drive Packages, the only thing you will have to think about is driving. We make it simple for you to get more of what you love. We streamline the " +
                                                                                  "entire process and have everything ready for you when you arrive at the track so you can get straight to racing.", "Packages from $340",
                                                                                  null, null);

                ChatWeatherCardDataItem weatherCard = new ChatWeatherCardDataItem("Florence", Image3.ToImage(),
                                                                                  "33°C", "Humidity: 76%", "Dew: 31°C",
                                                                                  "Pressure: 1031 mb", "Wind Speed: 15 km/h NW");

                List <FlightInfo> flights = new List <FlightInfo>();

                flights.Add(new FlightInfo("Los Angelis", "LAX", DateTime.Now.AddDays(7), "New York", "JFK", DateTime.Now.AddDays(7).AddHours(5.5)));
                flights.Add(new FlightInfo("New York", "JFK", DateTime.Now.AddDays(14).AddHours(3), "Los Angelis", "LAX", DateTime.Now.AddDays(14).AddHours(9.1)));
                ChatFlightCardDataItem flightCard = new ChatFlightCardDataItem("Andrew Fuller", flights, Image4.ToImage(), "$341", null);

                List <BaseChatCardDataItem> cards = new List <BaseChatCardDataItem>();

                cards.Add(imageCard);
                cards.Add(productCard);
                cards.Add(weatherCard);
                cards.Add(flightCard);
                Author author = new Author(Image3.ToImage(), "Ben");

                ChatCarouselMessage carouselMessage = new ChatCarouselMessage(cards, author, DateTime.Now);

                radchat.AddMessage(carouselMessage);
            }
Beispiel #5
0
 public CarouselMessageDataItem(ChatCarouselMessage message)
     : base((ChatMessage)message)
 {
     this.message = message;
 }