string GetDcnFieldValue (string matterId, string collectionId, string documentId) { matterId.ShouldNotBeEmpty(); collectionId.ShouldNotBeEmpty(); documentId.ShouldNotBeEmpty(); var fields = DataSetBO.GetDatasetFieldsOfType(matterId, new Guid(collectionId), Constants.DCNFieldTypeId); var dcnFieldValue = string.Empty; if (fields.Count > 0) { var dcnField = DocumentBO.GetDocumentFieldById(matterId, collectionId, documentId, fields[0].ID); dcnFieldValue = dcnField.FieldValue; } return(string.IsNullOrEmpty(dcnFieldValue) ? string.Empty : dcnFieldValue); }
private void ConstructLawSyncDocument(IEnumerable <ReconversionDocumentBEO> reprocessDocumentList) { #region Produce Image List <FilteredDocumentBusinessEntity> imagingDocuments = null; if (_lawSyncJobParameter.IsProduceImage) { var documentsSelection = new List <DocumentsSelectionBEO> { _lawSyncJobParameter.DocumentsSelection, _lawSyncJobParameter.ImageDocumentsSelection }; imagingDocuments = LawSyncSearchHelper.GetDocuments(documentsSelection, _dcnFieldName, _lawSyncJobParameter.CreatedBy); } #endregion var runningDocCount = 0; var lawDocumentsList = new List <LawSyncDocumentDetail>(); var documentProcessStateList = new List <DocumentConversionLogBeo>(); _logInfoList = new List <JobWorkerLog <LawSyncLogInfo> >(); foreach (var reprocessDocument in reprocessDocumentList) { _documentCorrelationId++; runningDocCount++; if (runningDocCount > Constants.BatchSize) { runningDocCount = 0; UpdateDcoumentProcessState(documentProcessStateList); Send(lawDocumentsList); lawDocumentsList = new List <LawSyncDocumentDetail>(); //Clear document List documentProcessStateList = new List <DocumentConversionLogBeo>(); //Clear document process state List } var lawDocument = new LawSyncDocumentDetail { DocumentReferenceId = reprocessDocument.DocumentId, DocumentControlNumber = reprocessDocument.DCNNumber, CorrelationId = _documentCorrelationId }; if (_lawSyncJobParameter.IsProduceImage && imagingDocuments != null && imagingDocuments.Any()) { lawDocument.IsImaging = imagingDocuments.Exists(y => y.DCN.Equals(lawDocument.DocumentControlNumber)); } else { //Document not part of imaging subset excluded for imaging. lawDocument.IsImaging = false; } var field = DocumentBO.GetDocumentFieldById( _lawSyncJobParameter.MatterId.ToString(CultureInfo.InvariantCulture), _dataset.CollectionId, lawDocument.DocumentReferenceId, _lawFieldId); if (field != null && !string.IsNullOrEmpty(field.FieldValue)) { lawDocument.LawDocumentId = Convert.ToInt32(field.FieldValue); } if (lawDocument.IsImaging) { _volumeDocumentCount++; var documentPagesCount = GetPageCountForImages(_lawSyncJobParameter.MatterId, _dataset.RedactableDocumentSetId, lawDocument.DocumentReferenceId); if (_volumeDocumentCount > VolumeMaximumDocumentCount) { _volumeDocumentCount = 0; _volumeCount++; _volumeFolderName = LawVolumeHelper.CreateVolumeFolder(_jobEVImagesDirectory, _volumeCount); _volumeDocumentPagesCount = 0; } lawDocument.ImagesFolderPath = _volumeFolderName; lawDocument.ImageStartingNumber = _volumeDocumentPagesCount; _volumeDocumentPagesCount = _volumeDocumentPagesCount + documentPagesCount; } if (lawDocument.LawDocumentId > 0) { lawDocumentsList.Add(lawDocument); } else { ConstructLog(lawDocument.LawDocumentId, lawDocument.CorrelationId, lawDocument.DocumentControlNumber, Constants.LawSyncDocumentNotAvailable); } documentProcessStateList.Add(GetDocumentProcessStateInformation(lawDocument)); } if (documentProcessStateList.Any()) { UpdateDcoumentProcessState(documentProcessStateList); } if (lawDocumentsList.Any()) { Send(lawDocumentsList); } if (_logInfoList.Any()) { SendLogPipe(_logInfoList); } }
/// <summary> /// Construct LawSync document /// </summary> private void ConstructLawSyncDocument(IEnumerable <FilteredDocumentBusinessEntity> resultDocuments) { var runningDocCount = 0; var lawDocumentsList = new List <LawSyncDocumentDetail>(); var documentProcessStateList = new List <DocumentConversionLogBeo>(); _logInfoList = new List <JobWorkerLog <LawSyncLogInfo> >(); foreach (var doc in resultDocuments) { _documentCorrelationId++; runningDocCount++; if (runningDocCount > Constants.BatchSize) { runningDocCount = 0; InsertDcoumentProcessState(documentProcessStateList); Send(lawDocumentsList); lawDocumentsList = new List <LawSyncDocumentDetail>(); //Clear document List documentProcessStateList = new List <DocumentConversionLogBeo>(); //Clear document process state List } var lawDocument = new LawSyncDocumentDetail { DocumentReferenceId = doc.Id, DocumentControlNumber = doc.DCN, IsImaging = !doc.IsExclude, CorrelationId = _documentCorrelationId }; var field = doc.OutPutFields.FirstOrDefault(f => f.Name == EVSystemFields.LawDocumentId); if (field != null && !string.IsNullOrEmpty(field.Value)) { lawDocument.LawDocumentId = Convert.ToInt32(field.Value); } //To fix upgrade issue from earlier version to 3.0 version. Law document id(LawDocumentId) not coming part of search result. if (lawDocument.LawDocumentId <= 0) { var lawField = DocumentBO.GetDocumentFieldById( _jobParameter.MatterId.ToString(CultureInfo.InvariantCulture), _dataset.CollectionId, lawDocument.DocumentReferenceId, _lawFieldId); if (lawField != null && !string.IsNullOrEmpty(lawField.FieldValue)) { lawDocument.LawDocumentId = Convert.ToInt32(lawField.FieldValue); } } if (lawDocument.IsImaging) { _volumeDocumentCount++; var documentPagesCount = GetPageCountForImages(_jobParameter.MatterId, _dataset.RedactableDocumentSetId, lawDocument.DocumentReferenceId); if (_volumeDocumentCount > VolumeMaximumDocumentCount) { _volumeDocumentCount = 0; _volumeCount++; _volumeFolderName = LawVolumeHelper.CreateVolumeFolder(_jobEVImagesDirectory, _volumeCount); _volumeDocumentPagesCount = 0; } lawDocument.ImagesFolderPath = _volumeFolderName; lawDocument.ImageStartingNumber = _volumeDocumentPagesCount; _volumeDocumentPagesCount = _volumeDocumentPagesCount + documentPagesCount; } if (lawDocument.LawDocumentId > 0) { lawDocumentsList.Add(lawDocument); } else { ConstructLog(lawDocument.LawDocumentId, lawDocument.CorrelationId, lawDocument.DocumentControlNumber, Constants.LawSyncDocumentNotAvailable); } documentProcessStateList.Add(GetDocumentProcessStateInformation(lawDocument)); } if (documentProcessStateList.Any()) { InsertDcoumentProcessState(documentProcessStateList); } if (lawDocumentsList.Any()) { Send(lawDocumentsList); } if (_logInfoList.Any()) { SendLogPipe(_logInfoList); } }