Articles → MICROSOFT BOT FRAMEWORK → Herocard And Thumbnailcard In Bot Framework

Herocard And Thumbnailcard In Bot Framework






Example Of Hero Card




  1. Create a new file "HeroCardDemo.cs".
  2. Add the code given below in the file.
  3. using Microsoft.Bot.Builder.Dialogs;
    using Microsoft.Bot.Connector;
    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    
    namespace Bot_Application1.Dialogs { [Serializable]
      public class HeroCardDemo: IDialog < object > {
        public async Task StartAsync(IDialogContext context) {
          context.Wait(MessageReceivedAsync);
        }
    
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable < IMessageActivity > result) {
          var message = context.MakeMessage();
          var activity = await result;
          message.Attachments.Add(GetCard(activity.Text));
          await context.PostAsync(message);
    
        }
    
        private Attachment GetCard(string title) {
          string imageUrl = "http://gyansangrah.com/ArticleImages/using_snap_lines_in_visual_studio_to_align_controls_for_windows_application_one.jpg";
          string docsUrl = "http://docs.microsoft.com";
    
          var heroCard = new HeroCard() {
            Title = title,
            Subtitle = "My Subtitle",
            Text = "MyText",
            Images = new List < CardImage > {
              new CardImage(imageUrl)
            }
          };
    
          return heroCard.ToAttachment();
        }
      }
    }


  4. In the "MessagesController.cs", write the following code in the "Post" method.
  5. public async Task < HttpResponseMessage > Post([FromBody] Activity activity) {
      if (activity.Type == ActivityTypes.Message) {
        await Conversation.SendAsync(activity, () =>new Dialogs.HeroCardDemo());
      }
      else {
        HandleSystemMessage(activity);
      }
      var response = Request.CreateResponse(HttpStatusCode.OK);
      return response;
    }


  6. Now, run the bot.
Picture showing the hero card in the Microsoft Bot Framework
Click to Enlarge



 string imageUrl = "http://gyansangrah.com/ArticleImages/using_snap_lines_in_visual_studio_to_align_controls_for_windows_application_one.jpg";

 var buttons = new List < CardAction > ();

 buttons.Add(new CardAction() {
   Title = "Veg Menu",
     Value = "veg",
     Type = ActionTypes.ImBack
 });

 var heroCard = new HeroCard() {
   Title = "Welcome",
     Subtitle = "My Subtitle",
     Text = "MyText",
     Images = new List < CardImage > {
       new CardImage(imageUrl)
     },
     Buttons = buttons
 };

 await turnContext.SendActivityAsync(MessageFactory.Attachment(heroCard.ToAttachment()), cancellationToken);




Picture showing the hero card with buttons
Click to Enlarge


Thumbnail Card




using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Bot_Application1.Dialogs { [Serializable]
  public class HeroCardDemo: IDialog < object > {
    public async Task StartAsync(IDialogContext context) {
      context.Wait(MessageReceivedAsync);
    }

    private async Task MessageReceivedAsync(IDialogContext context, IAwaitable < IMessageActivity > result) {
      var message = context.MakeMessage();
      var activity = await result;

      message.Attachments.Add(GetCard(activity.Text));
      message.Attachments.Add(GetCard(activity.Text));
      message.Attachments.Add(GetCard(activity.Text));
      await context.PostAsync(message);

    }

    private Attachment GetCard(string title) {
      string imageUrl = "http://gyansangrah.com/ArticleImages/using_snap_lines_in_visual_studio_to_align_controls_for_windows_application_one.jpg";
      string docsUrl = "http://docs.microsoft.com";

      var heroCard = new ThumbnailCard() {
        Title = title,
        Subtitle = "My Subtitle",
        Text = "MyText",
        Images = new List < CardImage > {
          new CardImage(imageUrl)
        }
      };

      return heroCard.ToAttachment();
    }
  }
}




Picture showing the thumbnail card in the Microsoft Bot Framework
Click to Enlarge


Change The Layout Type




var message = context.MakeMessage();
var activity = await result;
message.AttachmentLayout = AttachmentLayoutTypes.Carousel;
message.Attachments.Add(GetCard(activity.Text));
message.Attachments.Add(GetCard(activity.Text));
message.Attachments.Add(GetCard(activity.Text));
await context.PostAsync(message);



Output


Picture showing the change in layout of the thumbnail card in the Microsoft Bot Framework
Click to Enlarge


Posted By  -  Karan Gupta
 
Posted On  -  Friday, October 23, 2020
 
Updated On  -  Thursday, December 31, 2020

Query/Feedback


Your Email Id
 
Subject
 
Query/FeedbackCharacters remaining 250