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