/// <summary> /// Filter and get the final list of documents required /// </summary> /// <param name="documentQueryEntity">The document query entity.</param> /// <param name="documentListDetails">Object containing filter parameters</param> /// <returns> /// List of Filtered documents /// </returns> private List<FilteredDocumentBusinessEntity> GetFilteredListOfDocuments(DocumentQueryEntity documentQueryEntity, DocumentOperationBusinessEntity documentListDetails) { var filteredDocuments = new List<FilteredDocumentBusinessEntity>(); if (documentListDetails != null) { switch (documentListDetails.GenerateDocumentMode) { case DocumentSelectMode.QueryAndExclude: { filteredDocuments = FetchFilteredSearchResultDocuments(documentQueryEntity, documentListDetails.DocumentsToExclude, true); break; } case DocumentSelectMode.UseSelectedDocuments: { filteredDocuments = FetchFilteredSearchResultDocuments(documentQueryEntity, documentListDetails.SelectedDocuments, false); break; } } } return filteredDocuments; }
/// <summary> /// Get filtered list of documents from the search context /// </summary> /// <param name="documentSelectionContext">The document selection context.</param> /// <param name="documentIndex">Index of the document.</param> /// <param name="filteredDocuments">The filtered documents.</param> /// <returns> /// List of filtered documents /// </returns> private int GetQualifiedDocuments(DocumentOperationBusinessEntity documentSelectionContext, int documentIndex, out List<FilteredDocumentBusinessEntity> filteredDocuments) { filteredDocuments = new List<FilteredDocumentBusinessEntity>(); try { var documentQueryEntity = new DocumentQueryEntity { QueryObject = new SearchQueryEntity { ReviewsetId = documentSelectionContext.SearchContext.ReviewSetId, DatasetId = documentSelectionContext.SearchContext.DataSetId, MatterId = documentSelectionContext.SearchContext.MatterId, IsConceptSearchEnabled = documentSelectionContext.SearchContext.IsConceptSearchEnabled }, DocumentStartIndex = documentIndex }; documentQueryEntity.IgnoreDocumentSnippet = true; documentQueryEntity.QueryObject.QueryList.Add(new Query(documentSelectionContext.SearchContext.Query)); //documentQueryEntity.SortFields.Add(new Sort { SortBy = "Relevance" }); filteredDocuments = GetFilteredListOfDocuments(documentQueryEntity, documentSelectionContext); } catch (Exception ex) { if (ex.GetType() == typeof(EVException)) { var evEx = (EVException)ex; if (!string.IsNullOrEmpty(evEx.GetErrorCode())) { ex.Data[Constants.ErrorCode] = evEx.GetErrorCode(); ex.Data[Constants.Message] = evEx.ToUserString(); ex.Trace(); } else { Tracer.Error(string.Format("ProductionStartupWorker - {0}", Constants.ErrorInGetQualifiedDocuments)); } } else { Tracer.Error(string.Format("ProductionStartupWorker - {0}", Constants.ErrorInGetQualifiedDocuments)); } } return filteredDocuments.Count(); }