Hero Card - RetiSpA/botler GitHub Wiki
Le Hero Card sono ottimi strumenti offerti dal Bot Framework per mostrare all'utente informazioni, immagini, button, caroseli. Posso essere utilizzati come Attachment.
In Botler è stato implementato il Design Patter Strategy e Template Method per favorire una rapida creazione e invio di Hero Card all'utente.
public interface ISendAttachment
{
Task SendAttachmentAsync(ITurnContext turn);
}
public abstract class SendHeroCard : ISendAttachment
{
public async Task SendAttachmentAsync(ITurnContext turn)
{
Attachment attachment = CreateAttachement();
var response = CreateResponse(turn, attachment);
await SendHeroCardAsync(turn, response);
}
// Passo dell'algoritmo da implementare a seconda dell'esigenze delle varie Hero Card
public abstract Attachment CreateAttachement();
public Activity CreateResponse(ITurnContext turn, Attachment attachment)
{
var activity = turn.Activity;
var response = activity.CreateReply();
response.Attachments = new List<Attachment>() { attachment };
return response;
}
public async Task SendHeroCardAsync(ITurnContext turn, Activity response)
{
await turn.SendActivityAsync(response).ConfigureAwait(false);
}
}