private static ProcessingResult CreateProcessingResult(DocDBRecord document, string changeSource, ILogger log) { DateTime processedAt = DateTime.Now; DateTime createdAt = document.Timestamp; TimeSpan processingDuration = processedAt.ToUniversalTime() - createdAt.ToUniversalTime(); ProcessingResult result = new ProcessingResult { RowKey = document.Id, ProcessingSource = changeSource, CreatedAt = createdAt, ProcessedAt = processedAt, ProcessingDuration = processingDuration, PartitionKey = Guid.NewGuid().ToString(), RunId = document.RunId }; log.LogInformation("Processed document with id {DocumentId} for run {RunId} from {ChangeSource}. Duration: {ProcessingDuration}", document.Id, document.RunId, changeSource, processingDuration); return(result); }
public static async Task ProcessDocument(DocDBRecord document, IAsyncCollector <ProcessingResult> tableOutput, ILogger log, string processorName) { await DoWork(); await tableOutput.AddAsync(CreateProcessingResult(document, processorName, log)); }