Exemple #1
0
        private async Task ReplyImageCarouselAsync(string replyToken, string blobDirectoryName)
        {
            var columns = BlobStorage.ListBlobUri(blobDirectoryName)
                          .Select(uri =>
                                  new ImageCarouselColumn(uri.ToString(),
                                                          new MessageTemplateAction(uri.Segments.Last(), $"I selected image {uri.Segments.Last()}!"))).ToList();

            if (columns.Count == 0)
            {
                await MessagingClient.ReplyMessageAsync(replyToken, "Upload image for \"Carousel Message\".");

                return;
            }
            var template = new ImageCarouselTemplate(columns);

            await MessagingClient.ReplyMessageAsync(replyToken, new[] { new TemplateMessage("imageCarousel", template) });
        }
Exemple #2
0
        private async Task UploadImageAsync(string replyToken, string messageId, string blobDirectoryName)
        {
            var imageStream = await MessagingClient.GetContentStreamAsync(messageId);

            var image = Image.FromStream(imageStream);

            var imageCount = BlobStorage.ListBlobUri(blobDirectoryName).Count();

            if (imageCount == 5)
            {
                await BlobStorage.DeleteDirectoryAsync(blobDirectoryName);

                imageCount = 0;
            }

            await BlobStorage.UploadImageAsync(image, blobDirectoryName, (imageCount + 1) + ".jpeg");

            await MessagingClient.ReplyMessageAsync(replyToken, $"Image uploaded ({imageCount + 1}).");
        }
        protected override async Task OnMessageAsync(MessageEvent ev)
        {
            var msg = ev.Message as TextEventMessage;

            if (msg == null)
            {
                return;
            }

            switch (msg.Text)
            {
            case "Rectangle-Cover":
                await ReplyCarouselTemplateMessageAsync(ev.ReplyToken, ImageAspectRatioType.Rectangle, ImageSizeType.Cover);

                break;

            case "Square-Contain":
                await ReplyCarouselTemplateMessageAsync(ev.ReplyToken, ImageAspectRatioType.Square, ImageSizeType.Contain);

                break;

            case "Square-Cover":
                await ReplyCarouselTemplateMessageAsync(ev.ReplyToken, ImageAspectRatioType.Square, ImageSizeType.Cover);

                break;

            case "Rectangle-Contein":
            default:
                await ReplyCarouselTemplateMessageAsync(ev.ReplyToken, ImageAspectRatioType.Rectangle, ImageSizeType.Contain);

                break;
            }

            async Task ReplyCarouselTemplateMessageAsync(string replyToken, ImageAspectRatioType imageAspectRatio, ImageSizeType imageSize)
            {
                var imageUri = BlobStorage.ListBlobUri(blobDirectoryName).FirstOrDefault(uri => uri.ToString().EndsWith(imageName));

                if (imageUri == null)
                {
                    imageUri = await BlobStorage.UploadImageAsync(Properties.Resources.sample_image, blobDirectoryName, imageName);
                }
                var defaultAction   = new MessageTemplateAction("Default-Action", "Default-Action");
                var templateMessage = new TemplateMessage("CarouselTemplate",
                                                          new CarouselTemplate(new[]
                {
                    new CarouselColumn(
                        imageAspectRatio + "-" + imageSize,
                        imageUri.ToString(),
                        "Test of thumbnail image settings",
                        new [] { new MessageTemplateAction("Rectangle-Contain", "Rectangle-Contain") },
                        "#FF0000",
                        defaultAction),
                    new CarouselColumn(
                        imageAspectRatio + "-" + imageSize,
                        imageUri.ToString(),
                        "Test of thumbnail image settings",
                        new [] { new MessageTemplateAction("Rectangle-Cover", "Rectangle-Cover") },
                        "#00FF00",
                        defaultAction),
                    new CarouselColumn(
                        imageAspectRatio + "-" + imageSize,
                        imageUri.ToString(),
                        "Test of thumbnail image settings",
                        new [] { new MessageTemplateAction("Square-Contain", "Square-Contain") },
                        "#0000FF",
                        defaultAction),
                    new CarouselColumn(
                        imageAspectRatio + "-" + imageSize,
                        imageUri.ToString(),
                        "Test of thumbnail image settings",
                        new [] { new MessageTemplateAction("Square-Cover", "Square-Cover") },
                        "#FF00FF",
                        defaultAction)
                },
                                                                               imageAspectRatio,
                                                                               imageSize));

                await MessagingClient.ReplyMessageAsync(replyToken, new[] { templateMessage });
            }
        }