/// <summary> /// This method converts the ReviewsetSearchRecord type to DocumentRecordCollection /// </summary> /// <param name="searchRecord">ReviewsetSearchRecord</param> /// <param name="documentRecordCollection">ReviewsetSearchRecord</param> /// <returns></returns> private void ConvertReviewsetSearchRecordToDocumentRecordCollection (ReviewsetSearchRecord searchRecord, out DocumentRecordCollection documentRecordCollection) { documentRecordCollection = new DocumentRecordCollection(); var reviewsetRecord = new ReviewsetRecord { Activity = searchRecord.ReviewsetDetails.Activity, CreatedBy = searchRecord.ReviewsetDetails.CreatedBy, DatasetId = searchRecord.ReviewsetDetails.DatasetId, MatterId = searchRecord.QueryEntity.QueryObject.MatterId, ReviewSetId = searchRecord.ReviewsetDetails.ReviewSetId, BinderFolderId = searchRecord.ReviewsetDetails.BinderFolderId, BinderId = searchRecord.ReviewsetDetails.BinderId, BinderName = searchRecord.ReviewsetDetails.BinderName, ReviewSetName = searchRecord.ReviewsetDetails.ReviewSetName, ReviewSetDescription = searchRecord.ReviewsetDetails.ReviewSetDescription, DueDate = searchRecord.ReviewsetDetails.DueDate, KeepDuplicatesTogether = searchRecord.ReviewsetDetails.KeepDuplicatesTogether, KeepFamilyTogether = searchRecord.ReviewsetDetails.KeepFamilyTogether, ReviewSetGroup = searchRecord.ReviewsetDetails.ReviewSetName, ReviewSetLogic = searchRecord.ReviewsetDetails.ReviewSetLogic, SearchQuery = searchRecord.ReviewsetDetails.SearchQuery, SplittingOption = searchRecord.ReviewsetDetails.SplittingOption, StartDate = searchRecord.ReviewsetDetails.StartDate, NumberOfDocuments = searchRecord.ReviewsetDetails.NumberOfDocuments, NumberOfReviewedDocs = searchRecord.ReviewsetDetails.NumberOfReviewedDocs, NumberOfDocumentsPerSet = searchRecord.ReviewsetDetails.NumberOfDocumentsPerSet, NumberOfReviewSets = searchRecord.ReviewsetDetails.NumberOfReviewSets, CollectionId = searchRecord.ReviewsetDetails.CollectionId, AssignTo = searchRecord.ReviewsetDetails.AssignTo }; reviewsetRecord.ReviewSetUserList.AddRange(searchRecord.ReviewsetDetails.ReviewSetUserList); reviewsetRecord.DsTags.AddRange(searchRecord.ReviewsetDetails.DsTags); documentRecordCollection.ReviewsetDetails = reviewsetRecord; documentRecordCollection.TotalDocumentCount = searchRecord.TotalDocumentCount; }
/// <summary> /// Sends the specified search record. /// </summary> /// <param name="searchRecord">The search record.</param> private void Send(ReviewsetSearchRecord searchRecord) { try { var message = new PipeMessageEnvelope() { Body = searchRecord }; OutputDataPipe.Send(message); IncreaseProcessedDocumentsCount(searchRecord.TotalDocumentCount); } catch (Exception ex) { Tracer.Error("ReviewsetStartupWorker: Send: {0}", ex); } }
/// <summary> /// Processes the data. /// </summary> /// <param name="searchRecord"></param> public List<DocumentIdentityRecord> GetDocuments(ReviewsetSearchRecord searchRecord) { var documents = new List<DocumentIdentityRecord>(); try { var searchContext = searchRecord.QueryEntity; searchContext.DocumentCount = searchRecord.TotalDocumentCount; searchContext.DocumentStartIndex = 0; searchRecord.QueryEntity.TransactionName = searchContext.TransactionName = "SearchWorker - GetDocuments"; searchContext.TotalRecallConfigEntity.IsTotalRecall = true; MockSession(); var searchResults = SearchBo.Search(searchContext, true); if (searchResults != null && searchResults.Documents != null && searchResults.Documents.Any()) { searchResults.Documents.ForEach(r => documents.Add(ConvertToDocumentIdentityRecord(r))); } } catch (Exception ex) { ex.Trace().Swallow(); Tracer.Error("SearchWorker - GetDocuments : {0}", ex); throw; } return documents; }
/// <summary> /// Generates the message. /// </summary> /// <returns></returns> protected override bool GenerateMessage() { var searchRecord = new ReviewsetSearchRecord(); try { ////Send the document to the pipe to process once it reach the batchsize searchRecord.ReviewsetDetails = _reviewSetRecord; _docQueryEntity.ShouldNotBe(null); searchRecord.QueryEntity = _docQueryEntity; searchRecord.TotalDocumentCount = (int)_totalDocumentCount; Send(searchRecord); LogMessage(true, "Reviewset: Message successfully sent to acquire all the qualified documents"); } catch (Exception ex) { LogMessage(false, "Reviewset: Failed to determine the qualifying documents"); ex.Trace(); return false; } return true; }