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()));
        }
Exemple #2
0
    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();