private async Task <ProcessingContext> StepProcessing(IParsedDocumentHolder reviewHolder) { if (reviewHolder == null) { throw new ArgumentNullException(nameof(reviewHolder)); } Document document; Document originalDocument = null; IParsedReview review = null; try { Monitor.ManualyCount(); originalDocument = await reviewHolder.GetOriginal().ConfigureAwait(false); document = await reviewHolder.GetParsed().ConfigureAwait(false); review = reviewManager(document).Create(); } catch (Exception ex) { log.LogError(ex, "Error"); document = originalDocument.CloneJson(); document.Status = Status.Error; } Monitor.Increment(); var context = new ProcessingContext(originalDocument, document, review); return(context); }