private void CalculateVolume(IEnumerable <ExportDocumentDetail> documents) { var exportDocumentDetails = new List <ExportDocumentDetail>(); var loadFileHelper = new ExportLoadFileHelper(_bootParameter); Parallel.ForEach(documents.ToList(), new ParallelOptions { MaxDegreeOfParallelism = _maxParallelThread }, (docDetail) => loadFileHelper.SetImageSourceFiles(docDetail, _exportDocumentCollection.ExportOption)); foreach (var documentDetail in documents) { exportDocumentDetails.Add(SetDestinationFolderByFileType(documentDetail)); if (exportDocumentDetails.Count <= 100) { continue; } loadFileHelper.RemoveImageFile(exportDocumentDetails, _exportBaseFolderPath); Send(exportDocumentDetails); exportDocumentDetails.Clear(); } if (!exportDocumentDetails.Any()) { return; } loadFileHelper.RemoveImageFile(exportDocumentDetails, _exportBaseFolderPath); Send(exportDocumentDetails); exportDocumentDetails.Clear(); }
private void PerformCopy(out List <JobWorkerLog <ExportFileCopyLogInfo> > fileCopyLogList) { fileCopyLogList = new List <JobWorkerLog <ExportFileCopyLogInfo> >(); #region New var documentDetails = new List <ExportDocumentDetail>(); var tempFileCopyLogList = new List <JobWorkerLog <ExportFileCopyLogInfo> >(); var loadFileHelper = new ExportLoadFileHelper(_bootParameter); foreach (var doc in _exportDocumentCollection.Documents) { JobWorkerLog <ExportFileCopyLogInfo> fileCopyLog; loadFileHelper.SetImageSourceFiles(doc, _exportDocumentCollection.ExportOption); var exportDocument = CopyFiles(doc, out fileCopyLog); lock (DocObject) { if (exportDocument != null) { documentDetails.Add(exportDocument); } if (fileCopyLog != null) { tempFileCopyLogList.Add(fileCopyLog); } } } _exportDocumentCollection.Documents.Clear(); loadFileHelper.RemoveImageFile(documentDetails, _exportDocumentCollection.ExportOption.ExportDestinationFolderPath); _exportDocumentCollection.Documents.AddRange(documentDetails); if (tempFileCopyLogList.Any()) { fileCopyLogList.AddRange(tempFileCopyLogList); } #endregion #region Old Debug Purpose /* foreach (ExportDocumentDetail docDetail in _exportDocumentCollection.Documents) * { * JobWorkerLog<ExportFileCopyLogInfo> fileCopyLog = null; * var exportDocument = CopyFiles(docDetail, out fileCopyLog); * if (exportDocument != null) * documentDetails.Add(exportDocument); * if (fileCopyLog != null) * fileCopyLogList.Add(fileCopyLog); * * } * _exportDocumentCollection.Documents.Clear(); * _exportDocumentCollection.Documents.AddRange(documentDetails); */ #endregion }