/// <summary> /// Gets the production document list. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="selectionMode">The selection mode.</param> /// <param name="matterId">The matter id.</param> /// <param name="baseJobConfig">The base job config.</param> /// <param name="redactableCollectionId">The redactable collection id.</param> /// <param name="jobId"></param> /// <param name="filters"> </param> /// <returns></returns> public virtual IEnumerable <ReconversionProductionDocumentBEO> GetProductionDocumentList( string filePath, ReProcessJobSelectionMode selectionMode, long matterId, ProductionDetailsBEO baseJobConfig, string redactableCollectionId, int jobId, string filters = null) { switch (selectionMode) { case ReProcessJobSelectionMode.Selected: { var docidList = GetDocumentIdListFromFile(filePath, Constants.DocId); foreach (var v in GetProductionDocumentListForIdList( docidList, Constants.DocId, matterId, baseJobConfig, redactableCollectionId, jobId)) { yield return(v); } break; } case ReProcessJobSelectionMode.Csv: case ReProcessJobSelectionMode.CrossReference: { var dictIds = GetDocumentIdListFromFile(filePath, Constants.DCN, Constants.DocumentSetName); //put all value in one list. Since there is only one production set, it should all be the same collectionId var ids = new List <string>(); foreach (var dictId in dictIds) { ids.AddRange(dictId.Value); } foreach (var v in GetProductionDocumentListForIdList( ids, Constants.DCN, matterId, baseJobConfig, redactableCollectionId, jobId)) { yield return(v); } break; } case ReProcessJobSelectionMode.All: IEnumerable <ReconversionProductionDocumentBEO> reconversionProductionDocumentBeos = null; if (!string.IsNullOrEmpty(filters)) { var documentVaultManager = new DocumentVaultManager(); documentVaultManager.Init(matterId); IEnumerable <DocumentConversionLogBeo> documentConversionLogBeos = documentVaultManager.GetConversionResultsWithFilters(matterId, jobId, null, null, filters ); var docidList = documentConversionLogBeos.Select( documentConversionLogBeo => documentConversionLogBeo.DocId.ToString(CultureInfo.InvariantCulture)).ToList(); reconversionProductionDocumentBeos = GetProductionDocumentListForIdList( docidList, Constants.DocId, matterId, baseJobConfig, redactableCollectionId, jobId); } else { reconversionProductionDocumentBeos = GetProductionDocumentListForIdList ( null, "ALL", matterId, baseJobConfig, redactableCollectionId, jobId); } if (reconversionProductionDocumentBeos == null) { yield return(null); } foreach (var reConversionProductionBeo in reconversionProductionDocumentBeos) { yield return(reConversionProductionBeo); } break; } }
/// <summary> /// Gets the production document list. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="selectionMode">The selection mode.</param> /// <param name="matterId">The matter id.</param> /// <param name="baseJobConfig">The base job config.</param> /// <param name="redactableCollectionId">The redactable collection id.</param> /// <param name="jobId"></param> /// <param name="filters"> </param> /// <returns></returns> public virtual IEnumerable<ReconversionProductionDocumentBEO> GetProductionDocumentList( string filePath, ReProcessJobSelectionMode selectionMode, long matterId, ProductionDetailsBEO baseJobConfig, string redactableCollectionId, int jobId,string filters=null) { switch (selectionMode) { case ReProcessJobSelectionMode.Selected: { var docidList = GetDocumentIdListFromFile(filePath, Constants.DocId); foreach (var v in GetProductionDocumentListForIdList( docidList, Constants.DocId, matterId, baseJobConfig, redactableCollectionId, jobId)) yield return v; break; } case ReProcessJobSelectionMode.Csv: case ReProcessJobSelectionMode.CrossReference: { var dictIds = GetDocumentIdListFromFile(filePath, Constants.DCN, Constants.DocumentSetName); //put all value in one list. Since there is only one production set, it should all be the same collectionId var ids = new List<string>(); foreach (var dictId in dictIds) { ids.AddRange(dictId.Value); } foreach (var v in GetProductionDocumentListForIdList( ids, Constants.DCN, matterId, baseJobConfig, redactableCollectionId, jobId)) yield return v; break; } case ReProcessJobSelectionMode.All: IEnumerable<ReconversionProductionDocumentBEO> reconversionProductionDocumentBeos = null; if (!string.IsNullOrEmpty(filters)) { var documentVaultManager = new DocumentVaultManager(); documentVaultManager.Init(matterId); IEnumerable<DocumentConversionLogBeo> documentConversionLogBeos = documentVaultManager.GetConversionResultsWithFilters(matterId, jobId, null, null, filters ); var docidList = documentConversionLogBeos.Select( documentConversionLogBeo => documentConversionLogBeo.DocId.ToString(CultureInfo.InvariantCulture)).ToList(); reconversionProductionDocumentBeos = GetProductionDocumentListForIdList( docidList, Constants.DocId, matterId, baseJobConfig, redactableCollectionId, jobId); } else { reconversionProductionDocumentBeos = GetProductionDocumentListForIdList ( null, "ALL", matterId, baseJobConfig, redactableCollectionId, jobId); } if (reconversionProductionDocumentBeos == null) yield return null; foreach (var reConversionProductionBeo in reconversionProductionDocumentBeos) yield return reConversionProductionBeo; break; } }