//TODO public override IEnumerable <Test> MakeTestBlocks() { using (var archive = new SevenZipArchive(_workPath, ArchiveFormat.Unkown, _password)) { var inputFiles = archive.Where(x => InputFilePattern.GetFullRegex().IsMatch(x.FileName)); var ouputFiles = archive.Where(x => OutputFilePattern.GetFullRegex().IsMatch(x.FileName)); var comparer = new TestFileNameComparer(InputFilePattern, OutputFilePattern); foreach (var inputFile in inputFiles) { foreach (var outputFile in ouputFiles) { var inName = inputFile.FileName; var outName = outputFile.FileName; if (comparer.Equals(inName, outName)) { var idTest = InputFilePattern.GetNumberPart(inName); yield return(new Test( inputFile.ExtractToStreamReader(), outputFile.ExtractToStreamReader(), idTest, _configTestsetProvider.TimeLimitFor(idTest), _configTestsetProvider.MemoryLimitFor(idTest), _configTestsetProvider.PriceFor(idTest) )); } } } } }
public override IEnumerable <Test> MakeTestBlocks() { _logger.Info("Find test files..."); String[] inputFiles = GetFilesByMask(InputFilePattern.GetFullRegex()); String[] outputFiles = GetFilesByMask(OutputFilePattern.GetFullRegex()); var tests = MakeTestBlocks(inputFiles, outputFiles); _logger.Info("Test blocks ready"); return(tests); }
public override TaskStatus Run() { Info("Transforming images..."); bool success = true; bool atLeastOneSucceed = false; foreach (FileInf file in SelectFiles()) { try { var destFilePath = Path.Combine(Workflow.WorkflowTempFolder, OutputFilePattern.Replace("$fileNameWithoutExtension", Path.GetFileNameWithoutExtension(file.FileName)).Replace("$fileName", file.FileName)); using (Image img = Image.FromFile(file.Path)) { switch (OutputFormat) { case ImgFormat.Bmp: img.Save(destFilePath, ImageFormat.Bmp); break; case ImgFormat.Emf: img.Save(destFilePath, ImageFormat.Emf); break; case ImgFormat.Exif: img.Save(destFilePath, ImageFormat.Exif); break; case ImgFormat.Gif: img.Save(destFilePath, ImageFormat.Gif); break; case ImgFormat.Icon: img.Save(destFilePath, ImageFormat.Icon); break; case ImgFormat.Jpeg: img.Save(destFilePath, ImageFormat.Jpeg); break; case ImgFormat.Png: img.Save(destFilePath, ImageFormat.Png); break; case ImgFormat.Tiff: img.Save(destFilePath, ImageFormat.Tiff); break; case ImgFormat.Wmf: img.Save(destFilePath, ImageFormat.Wmf); break; } } Files.Add(new FileInf(destFilePath, Id)); InfoFormat("Image {0} transformed to {1}", file.Path, destFilePath); if (!atLeastOneSucceed) { atLeastOneSucceed = true; } } catch (ThreadAbortException) { throw; } catch (Exception e) { ErrorFormat("An error occured while transforming the image {0}. Error: {1}", file.Path, e.Message); success = false; } } var status = Status.Success; if (!success && atLeastOneSucceed) { status = Status.Warning; } else if (!success) { status = Status.Error; } Info("Task finished."); return(new TaskStatus(status, false)); }
private bool Transform(ref bool atLeastOneSuccess) { var success = true; foreach (FileInf file in SelectFiles()) { try { var destFilePath = Path.Combine(Workflow.WorkflowTempFolder, OutputFilePattern.Replace("$fileNameWithoutExtension", Path.GetFileNameWithoutExtension(file.FileName)).Replace("$fileName", file.FileName)); using (Image img = Image.FromFile(file.Path)) { switch (OutputFormat) { case ImgFormat.Bmp: img.Save(destFilePath, ImageFormat.Bmp); break; case ImgFormat.Emf: img.Save(destFilePath, ImageFormat.Emf); break; case ImgFormat.Exif: img.Save(destFilePath, ImageFormat.Exif); break; case ImgFormat.Gif: img.Save(destFilePath, ImageFormat.Gif); break; case ImgFormat.Icon: img.Save(destFilePath, ImageFormat.Icon); break; case ImgFormat.Jpeg: img.Save(destFilePath, ImageFormat.Jpeg); break; case ImgFormat.Png: img.Save(destFilePath, ImageFormat.Png); break; case ImgFormat.Tiff: img.Save(destFilePath, ImageFormat.Tiff); break; case ImgFormat.Wmf: img.Save(destFilePath, ImageFormat.Wmf); break; } } Files.Add(new FileInf(destFilePath, Id)); InfoFormat("Image {0} transformed to {1}", file.Path, destFilePath); if (!atLeastOneSuccess) { atLeastOneSuccess = true; } } catch (ThreadAbortException) { throw; } catch (Exception e) { ErrorFormat("An error occured while transforming the image {0}. Error: {1}", file.Path, e.Message); success = false; } } return(success); }