protected string GetBlobName(AuditEvent auditEvent)
 {
     if (BlobNameBuilder != null)
     {
         return(BlobNameBuilder.Invoke(auditEvent));
     }
     return(string.Format("{0}.json", Guid.NewGuid()));
 }
        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);
        }