private async Task UploadAsync(string name, AuditEvent auditEvent) { var container = await EnsureContainerAsync(auditEvent); var blob = container.GetBlockBlobReference(name); var json = Configuration.JsonAdapter.Serialize(auditEvent); if (MetadataBuilder != null) { var metadata = MetadataBuilder.Invoke(auditEvent); if (metadata != null) { foreach (var md in metadata) { blob.Metadata[md.Key] = md.Value; } } } await blob.UploadTextAsync(json); if (AccessTierBuilder != null) { var accessTier = AccessTierBuilder.Invoke(auditEvent); if (accessTier.HasValue) { await blob.SetStandardBlobTierAsync(accessTier.Value); } } }
private async Task <string> UploadAsync(BlobContainerClient client, AuditEvent auditEvent, string existingBlobName) { var blobName = existingBlobName ?? BlobNameBuilder?.Invoke(auditEvent) ?? string.Format("{0}.json", Guid.NewGuid()); var blob = client.GetBlobClient(blobName); var options = new BlobUploadOptions() { Metadata = MetadataBuilder?.Invoke(auditEvent), AccessTier = AccessTierBuilder?.Invoke(auditEvent) }; #if NETSTANDARD2_0 await blob.UploadAsync(new BinaryData(auditEvent, JsonSettings), options); #else await blob.UploadAsync(new BinaryData(auditEvent, Core.Configuration.JsonSettings), options); #endif return(blobName); }