Пример #1
0
        internal void Apply(ImageAddedEvent @event)
        {
            var image = new ProductImage();

            image.Route(@event);
            ProductImages.Add(image);
        }
Пример #2
0
 public async Task RunAsync([QueueTrigger("images", Connection = "StorageAccount:ConnectionString")] ImageAddedEvent queueEvent,
                            [Blob("data/images/{Type}/{FileName}", FileAccess.Read, Connection = "StorageAccount:ConnectionString")] Stream originalImage,
                            [Blob("data/images/{Type}/{Id}/low/{FileName}", FileAccess.Write, Connection = "StorageAccount:ConnectionString")] Stream lowImage,
                            [Blob("data/images/{Type}/{Id}/medium/{FileName}", FileAccess.Write, Connection = "StorageAccount:ConnectionString")] Stream mediumImage,
                            [Blob("data/images/{Type}/{Id}/high/{FileName}", FileAccess.Write, Connection = "StorageAccount:ConnectionString")] Stream highImage,
                            [Queue("resize-completed", Connection = "StorageAccount:ConnectionString")] IAsyncCollector <ImageResizeCompleted> imageResizeCompletedQueueOutputs,
                            ILogger log)
 {
     log.LogInformation(queueEvent.FileName);
     using (Image image = Image.Load(originalImage))
     {
         image.Save(lowImage, new JpegEncoder()
         {
             Quality = 20
         });
         image.Save(mediumImage, new JpegEncoder()
         {
             Quality = 50
         });
         image.Save(highImage, new JpegEncoder()
         {
             Quality = 90
         });
     }
     log.LogInformation($"Insert into resize-completed queue");
     await imageResizeCompletedQueueOutputs.AddAsync(new ImageResizeCompleted()
     {
         ContentType = queueEvent.ContentType,
         Id          = queueEvent.Id,
         Type        = queueEvent.Type,
         FileName    = queueEvent.FileName,
         FilePath    = queueEvent.FilePath
     });
 }