namespace MxGateway.Server.Workers; public sealed class WorkerProcessCommandLine { public WorkerProcessCommandLine( string executablePath, IReadOnlyList arguments) { ExecutablePath = executablePath; Arguments = arguments; } public string ExecutablePath { get; } public IReadOnlyList Arguments { get; } public override string ToString() { return string.Join( " ", new[] { Quote(ExecutablePath) }.Concat(Arguments.Select(Quote))); } private static string Quote(string value) { return value.Contains(' ', StringComparison.Ordinal) ? $"\"{value}\"" : value; } }