Exemplo n.º 1
0
            public async Task <UploadDigitalAssetFromBase64StringResponse> Handle(UploadDigitalAssetFromBase64StringRequest request)
            {
                _blobClient = _storageAccount.CreateCloudBlobClient();

                var container = _blobClient.GetContainerReference($"{request.TenantUniqueId}");

                await container.CreateIfNotExistsAsync();

                BlobContainerPermissions permissions = container.GetPermissions();

                permissions.PublicAccess = BlobContainerPublicAccessType.Blob;

                container.SetPermissions(permissions);

                byte[] data = System.Convert.FromBase64String(request.Base64String);

                var stream = new MemoryStream(data);

                System.Drawing.Image image = System.Drawing.Image.FromStream(stream);

                var mimeType = image.GetMimeType();

                var filename = $"{Guid.NewGuid()}.{GetFileExtensionBasedOnMimeType(mimeType)}";

                var blockBlob = container.GetBlockBlobReference(filename);

                blockBlob.Properties.ContentType = System.Convert.ToString(mimeType);

                await blockBlob.UploadFromStreamAsync(stream);

                return(new UploadDigitalAssetFromBase64StringResponse()
                {
                    Filename = $"{blockBlob.StorageUri.PrimaryUri}"
                });
            }