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