/// <summary>
        /// Get documents for Rerun job
        /// </summary>
        /// <param name="documents"></param>
        /// <returns></returns>
        private List <ProjectDocumentDetail> GetDocumentsForRerunJob(List <DocumentIdentifier> documents)
        {
            var documentStatusList = _analyticProject.GetProjectDocumentsStausFromProcessSet(_jobParameter.MatterId,
                                                                                             _dataset.CollectionId,
                                                                                             _jobParameter.PrimarySystemJobId,
                                                                                             WorkAssignment.JobId, documents.Select(d => d.ReferenceId).ToList());

            var projectDocumentDetailList = new List <ProjectDocumentDetail>();

            foreach (var document in documents)
            {
                var resultdocumentStatus =
                    documentStatusList.FirstOrDefault(d => d.DocumentReferenceId == document.ReferenceId);

                if (resultdocumentStatus != null && resultdocumentStatus.SubSystemStatus)
                {
                    continue; //Document processed earlier and already succeed, then no need to process again
                }
                var projectDocumentDetail = new ProjectDocumentDetail
                {
                    DocumentReferenceId =
                        document.ReferenceId,
                    TextFilePath = document.Url
                };
                projectDocumentDetailList.Add(projectDocumentDetail);
            }
            return(projectDocumentDetailList);
        }
        /// <summary>
        /// Send documents to next worker for Update Fields
        /// </summary>
        /// <param name="categorizedResultDocuments"></param>
        private void SendDocumentsForUpdate(IEnumerable <CategorizedDoc> categorizedResultDocuments)
        {
            var resultDocuments = new List <ProjectDocumentDetail>();

            foreach (var categorizedResultDocument in categorizedResultDocuments)
            {
                var resultDocument = new ProjectDocumentDetail {
                    DocId = categorizedResultDocument.DocId
                };
                var    predictedCategory = string.Empty;
                double predictedScore    = 0;
                if (categorizedResultDocument.CategoryResults != null && categorizedResultDocument.CategoryResults.Any())
                {
                    if (!string.IsNullOrEmpty(categorizedResultDocument.CategoryResults[0].CategoryName))
                    {
                        predictedCategory = categorizedResultDocument.CategoryResults[0].CategoryName.Equals("R")
                            ? RelevantCategory
                            : NotRelevantCategory;
                    }

                    predictedScore = categorizedResultDocument.CategoryResults[0].Score;
                }
                resultDocument.PredictedCategory = predictedCategory;
                resultDocument.DocumentScore     = predictedScore;
                resultDocuments.Add(resultDocument);
                if (resultDocuments.Count < _batchSize)
                {
                    continue;
                }
                //Send documents to pipeline
                Send(resultDocuments);
                resultDocuments.Clear();
            }

            if (resultDocuments.Any())
            {
                //Send documents to pipeline
                Send(resultDocuments);
            }
        }