private async Task Generate(AttributeGenerator generator) { activity = $"Generating " + generator.AttributeName; max = _metadataStore.CountFilesMissingAttribute(generator.AttributeName); processed = 0; var files = _metadataStore.FilesMissingAttribute(generator.AttributeName); foreach (var file in files) { var values = generator.GenerateAttribute(file); if (values != null) { foreach (var value in values) { await _metadataStore.SetAttribute(file.Id, generator.AttributeName, value); } } processed++; } }