/// <summary> /// Обработка файлов задачи. /// !!! Вызывать только после обработки параметров задачи !!! /// </summary> /// <param name="reports">отчеты</param> public void ProcessFiles(EpsFastReport[] reports) { if (reports != null && reports.Length > 0 && _exportType != null) { foreach (var epsFastReport in reports) { if (epsFastReport == null) { continue; } var extension = GetParamValue <string>(EpsTaskParams.FileExtension); extension = string.IsNullOrEmpty(extension) ? EpsHelper.GetFileExtension(_exportType.Format) : extension.TrimStart('.'); if (string.IsNullOrEmpty(extension)) { throw new Exception(string.Format("Неопределено расширение файла для формата '{0}'.", _exportType.Format)); } var resultReportFile = Sb.Substitute(epsFastReport.ReportName); byte[] data; if (Archiver == null) { data = epsFastReport.GetExportStream(_exportType); } else { data = Archiver.ArchiveStreamToStream(epsFastReport.GetExportStream(_exportType), resultReportFile + "." + extension, Properties.Settings.Default.CompressionLevel); } Files.Add(extension.Length > 0 ? new FileStruct(data, resultReportFile, extension, Ziped) : new FileStruct(data, resultReportFile, Ziped)); } } else //Если отчетов нет, то проверяем парметр EpsTaskParams.SourceFolder { if (FindByName(EpsTaskParams.SourceFolder) == null) { throw new Exception("SourceFolder parameter not found."); } } var fileList = FilePumper.GetFileList(); if (FilePumper.PumperState) { if (fileList == null) { return; } foreach (var f in fileList) { var data = (Archiver != null) ? Archiver.ArchiveStreamToStream(FilePumper.GetFile(f), Path.GetFileName(f), Properties.Settings.Default.CompressionLevel) : FilePumper.GetFile(f); Files.Add(new FileStruct(data, f, Ziped)); } } else { throw new Exception("Could not get source files."); } }