public static ImageEntity FromTableEntity(ImageTableEntity tableEntity)
 {
     return(new ImageEntity()
     {
         UserName = tableEntity.UserName,
         Id = tableEntity.Id,
         Name = tableEntity.Name
     });
 }
        public async Task <Image> DeleteImageAsync(string id)
        {
            var image = new ImageTableEntity {
                Id = id
            };
            await TableClient.DeleteEntityAsync(image.PartitionKey, image.RowKey);

            return(image);

            //TODO : Bubble up errors through the stack
        }
Example #3
0
        public async Task <ImageTableEntity> AddOrUpdateAsync(ImageTableEntity image)
        {
            if (string.IsNullOrWhiteSpace(image.Id))
            {
                image.Id       = Guid.NewGuid().ToString();
                image.UserName = this.userNameProvider.UserName;
            }
            await imageTable.ExecuteAsync(TableOperation.InsertOrReplace(image));

            return(image);
        }
        public async Task <Image> GetImageAsync(string id)
        {
            var image = new ImageTableEntity()
            {
                Id = id
            };

            await foreach (ImageTableEntity item in TableClient.QueryAsync <ImageTableEntity>(i => i.PartitionKey == image.PartitionKey && i.RowKey == image.RowKey))
            {
                return(item);
            }
            return(null);
        }
Example #5
0
        public string GetDownloadUrl(ImageTableEntity image)
        {
            // Create a SAS token that's valid for one hour.
            BlobSasBuilder sasBuilderBlob = new BlobSasBuilder()
            {
                BlobContainerName = blobContainerClient.Name,
                BlobName          = image.Id,
                Resource          = "b",
            };

            sasBuilderBlob.StartsOn  = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(15));
            sasBuilderBlob.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
            sasBuilderBlob.SetPermissions(BlobSasPermissions.Read);

            // Use the key to get the SAS token.
            var sasToken = sasBuilderBlob.ToSasQueryParameters(new StorageSharedKeyCredential(blobServiceClient.AccountName, connectionStringProvider.AccountKey)).ToString();

            return(blobContainerClient.GetBlockBlobClient(image.Id).Uri + "?" + sasToken);
        }