private DcbDatabaseTags FetchDatabaseLevelTags() { // If there are database level tags - fetch and store them to be sent with the first document if (!DcbOpticonJobBEO.IncludeTags) { return(null); } List <string> compositeTagNames = DcbFacade.GetDatabaseTags(); if (0 == compositeTagNames.Count) { return(null); } DcbDatabaseTags dcbDatabaseTags = new DcbDatabaseTags() { compositeTagNames = compositeTagNames, DatasetId = DcbOpticonJobBEO.TargetDatasetId, MatterId = DcbOpticonJobBEO.MatterId }; return(dcbDatabaseTags); }
protected override void ProcessMessage(PipeMessageEnvelope envelope) { if (null == envelope || null == envelope.Body) { return; } try { DcbSlice dcbSlice = (DcbSlice)envelope.Body; OpenDCB(dcbSlice.DcbCredentials); ImageSetId = dcbSlice.ImageSetId; FamiliesInfo familiesInfo = DcbOpticonJobBEO.IsImportFamilies ? new FamiliesInfo() : null; var documentDetailList = new List <DocumentDetail>(); var dcbParserLogEntries = new List <JobWorkerLog <DcbParserLogInfo> >(); int lastDocumentInTheBatch = dcbSlice.FirstDocument + dcbSlice.NumberOfDocuments - 1; for (int currentDocumentNumber = dcbSlice.FirstDocument; currentDocumentNumber <= lastDocumentInTheBatch; currentDocumentNumber++) { JobWorkerLog <DcbParserLogInfo> dcbParserLogEntry = new JobWorkerLog <DcbParserLogInfo>() { JobRunId = long.Parse(PipelineId), WorkerInstanceId = WorkerId, CorrelationId = currentDocumentNumber + 1, // CorrId is the same as TaskId and it is 1 based. // This magic GUID is set in [EVMaster].[dbo].[EV_JOB_WorkerRoleType] to identify DcbParcer for Log Worker WorkerRoleType = "e754adb7-23c8-44cc-8d4c-12f33aef41b6", Success = true, CreatedBy = ProfileBEO.CreatedBy, IsMessage = false, LogInfo = new DcbParserLogInfo() }; FetchDocumentFromDCB(currentDocumentNumber, documentDetailList, familiesInfo, dcbParserLogEntry); dcbParserLogEntries.Add(dcbParserLogEntry); } if (0 == dcbSlice.FirstDocument) { DcbDatabaseTags dcbDatabaseTags = FetchDatabaseLevelTags(); if (null != dcbDatabaseTags) { if (null == documentDetailList[0].DcbTags) { documentDetailList[0].DcbTags = new List <DcbTags>(); } documentDetailList[0].DcbTags.Add(dcbDatabaseTags); } } if (DcbOpticonJobBEO.IsImportFamilies) { SendRelationshipsInfo(familiesInfo.FamilyInfoList); } Send(documentDetailList); SendLog(dcbParserLogEntries); } catch (ArgumentOutOfRangeException exRange) { exRange.AddUsrMsg(Constants.ExportPathFull); ReportToDirector(exRange); exRange.Trace(); LogMessage(false, Constants.ExportPathFull); throw; } catch (Exception ex) { ReportToDirector(ex); ex.Trace().Swallow(); LogMessage(false, "DcbParser failed to process document. Error: " + ex.ToUserString()); } }
private DcbDatabaseTags FetchDatabaseLevelTags() { // If there are database level tags - fetch and store them to be sent with the first document if (!DcbOpticonJobBEO.IncludeTags) { return null; } List<string> compositeTagNames = DcbFacade.GetDatabaseTags(); if (0 == compositeTagNames.Count) { return null; } DcbDatabaseTags dcbDatabaseTags = new DcbDatabaseTags() { compositeTagNames = compositeTagNames, DatasetId = DcbOpticonJobBEO.TargetDatasetId, MatterId = DcbOpticonJobBEO.MatterId }; return dcbDatabaseTags; }