private string GetTargetFileNameFromSource(string sourceFile, ArgumentsParser.RunMode mode) { return(mode == ArgumentsParser.RunMode.Compress ? $"{sourceFile}{archiveExt}" : sourceFile.EndsWith(archiveExt, StringComparison.OrdinalIgnoreCase) ? sourceFile.Substring(0, sourceFile.LastIndexOf(archiveExt, StringComparison.OrdinalIgnoreCase)) : null); }
public void Process(ICompressor compressor, string sourceFile, string targetFile, ArgumentsParser.RunMode mode) { if (string.IsNullOrEmpty(targetFile)) { targetFile = GetTargetFileNameFromSource(sourceFile, mode); } if (targetFile == null) { throw new ArgumentException("Specify target file parameter."); } CompressDecompress(sourceFile, targetFile, mode == ArgumentsParser.RunMode.Compress ? new Action <Stream, Stream>(compressor.Compress) : new Action <Stream, Stream>(compressor.Decompress)); }