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));
    }