Example #1
0
        /// <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;
            }
        }