private static string SanitizeStoragePrefix(ICommandAuditOptions options) { const int MaxStorageNameSize = 45; var validStorageNameCharacters = (options.StoragePrefix ?? string.Empty) .ToCharArray() .Where(char.IsLetterOrDigit); if (!validStorageNameCharacters.Any()) { return(string.Empty); } if (char.IsNumber(validStorageNameCharacters.First())) { // Azure Table storage requires that the task hub does not start // with a number. If it does, prepend "a" to the beginning. validStorageNameCharacters = validStorageNameCharacters.ToList(); ((List <char>)validStorageNameCharacters).Insert(0, 'a'); } return(new string(validStorageNameCharacters .Take(MaxStorageNameSize) .ToArray())); }
public CommandAuditReader(ICommandAuditOptions options = null) { this.options = options ?? CommandAuditOptions.Default; tableClientInstance = new Lazy <TableClient>(() => new TableClient(this.options.ConnectionString, CommandAuditEntity.AUDIT_TABLE_NAME)); blobContainerClientInstance = new Lazy <BlobContainerClient>(() => new BlobContainerClient(this.options.ConnectionString, CommandAuditEntity.AUDIT_CONTAINER_NAME)); }
public CommandAuditWriter(ICommandAuditOptions options = null) { auditContainer = new Lazy <CloudBlobContainer>(() => BlobCloudStorageAccount .Parse((options ?? CommandAuditOptions.Default).ConnectionString) .CreateCloudBlobClient().GetContainerReference(GetAuditContainerName(options))); auditTable = new Lazy <CloudTable>(() => TableCloudStorageAccount .Parse((options ?? CommandAuditOptions.Default).ConnectionString) .CreateCloudTableClient().GetTableReference(GetAuditTableName(options))); }
private static string GetAuditTableName(ICommandAuditOptions options) => $"{SanitizeStoragePrefix(options)}Audit".Trim();
private static string GetAuditContainerName(ICommandAuditOptions options) => $"{SanitizeStoragePrefix(options)}-Audit".Trim().TrimStart('-').ToLowerInvariant();