private Config.Executable toExecutable(JToken token, Config.Executable? parent) { var obj = (JObject) token; var exe = new Config.Executable(); exe.Label = (string) (obj["label"] ?? Missing(obj, "label")); exe.Path = (string) (obj["path"] ?? parent?.Path ?? Missing(obj, "path")); exe.Args = (string) (obj["args"] ?? parent?.Args ?? ""); exe.Multiple = obj["multiple"]?.Select(entry => this.toExecutable(entry, exe)).ToList(); return exe; }
private Config.Executable toExecutable(JToken token, Config.Executable? parent) { var obj = (JObject) token; var exe = new Config.Executable(); exe.Label = (string) (obj["label"] ?? Missing(obj, "label")); exe.Path = (string) (obj["path"] ?? parent?.Path ?? Missing(obj, "path")); exe.Args = (string) (obj["args"] ?? parent?.Args ?? ""); exe.Env = parent?.Env ?? new Dictionary<string, string>(); var env = (JObject) obj["env"] ?? new JObject(); foreach (var pair in env) { exe.Env.Add(pair.Key, (string) pair.Value); } exe.Multiple = obj["multiple"]?.Select(entry => this.toExecutable(entry, exe)).ToList(); return exe; }