示例#1
0
        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);
        }
示例#2
0
        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;
        }