Hero Card - RetiSpA/botler GitHub Wiki

Hero Card

Le Hero Card sono ottimi strumenti offerti dal Bot Framework per mostrare all'utente informazioni, immagini, button, caroseli. Posso essere utilizzati come Attachment.

Implementazione invio Hero Card di Botler

In Botler è stato implementato il Design Patter Strategy e Template Method per favorire una rapida creazione e invio di Hero Card all'utente.

Interfaccia ISendAttachment

    public interface ISendAttachment
    {
        Task SendAttachmentAsync(ITurnContext turn);
    }

Classe astratta che implementa alcuni passi dell'algoritmo

    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);
        }
    }
⚠️ **GitHub.com Fallback** ⚠️