/// <inheritdoc /> public async Task <AuditBlob[]> GetUnprocessedAudits(ScannerContainer container) { var uri = new Uri($"{this.config.AzureBlob.BasePath}/{container.Name}?{this.config.AzureBlob.Sas}"); var client = new Azure.Storage.Blobs.BlobContainerClient(uri); var blobs = new List <AuditBlob>(); await foreach (var blob in client.GetBlobsAsync(BlobTraits.Metadata)) { // skip all not metadata file. if (!blob.Name.EndsWith("meta")) { continue; } if (blob.Metadata == null || !blob.Metadata.ContainsKey(ProcessedMetadataKey)) { blobs.Add(new AuditBlob { Name = blob.Name, ParentContainer = container, }); } } return(blobs.ToArray()); }
/// <summary> /// The method returns all audit files in the container. /// </summary> /// <param name="container">The container with audits.</param> /// <returns>Array of Audit blobs.</returns> public async Task MarkAllAuditsAsUnprocessed(ScannerContainer container) { var uri = new Uri($"{this.config.AzureBlob.BasePath}/{container.Name}?{this.config.AzureBlob.Sas}"); var client = new Azure.Storage.Blobs.BlobContainerClient(uri); await foreach (var blob in client.GetBlobsAsync()) { // skip all not metadata file. if (!blob.Name.EndsWith("meta")) { continue; } await client.GetBlobClient(blob.Name).SetMetadataAsync(new Dictionary <string, string>()); } }