public string Build(IRenderPanel source, Preset?preset, IList <string> files, string OutputDirectory, string ffmpeg, FileHandlingMode fileHandlingMode) { StringBuilder results = new StringBuilder(); List <string> presetArgValues = ProcessPreset(ffmpeg, source, preset); foreach (var file in files) { var outname = Path.Combine(OutputDirectory, Path.GetFileName(file)); outname = Path.ChangeExtension(outname, preset?.TargetExtension ?? string.Empty); var line = RenderSingleFile(presetArgValues.ToArray(), file, outname); WrapInAction(results, line, outname, fileHandlingMode); } return(results.ToString()); }
private void WrapInAction(StringBuilder results, string command, string file, FileHandlingMode fileHandlingMode) { results.Append($"if (Test-Path \"{file}\" -PathType Leaf)"); results.Append(" {\r\n"); switch (fileHandlingMode) { case FileHandlingMode.DeleteIfExists: results.AppendFormat("\tRemove-Item \"{0}\"", file); break; case FileHandlingMode.RenameIfExists: RenameIfExists(results, file); break; case FileHandlingMode.OwerwriteNotify: results.AppendFormat("\techo \"File {0} exists and will be owerwitten.\"\r\n", file); results.AppendLine("\tRead-Host -Prompt \"Press any key to continue\""); results.AppendFormat("\tRemove-Item \"{0}\"", file); break; } results.Append("}\r\n"); results.AppendLine(command); }