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 }
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); }
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); }