protected static List <CmdArgumentJson> TransformCmdList(ICollection <CmdBase> items) { var result = new List <CmdArgumentJson>(items.Count); foreach (var item in items) { var newElement = new CmdArgumentJson { Id = item.Id, ProjectConfig = item.ProjectConfig, LaunchProfile = item.LaunchProfile, // not in JSON Selected = item.IsSelected, }; if (item is CmdArgument arg) { newElement.Command = item.Value; // not in JSON newElement.Enabled = item.IsChecked ?? false; } if (item is CmdWorkingDir workingDir) { newElement.WorkingDir = item.Value; } if (item is CmdContainer container) { newElement.Command = item.Value; // LCTODO: the Command field is probably useless for containers, check if that is really the case newElement.Items = TransformCmdList(container.Items); newElement.ExclusiveMode = container.ExclusiveMode; // not in JSON newElement.Expanded = container.IsExpanded; } result.Add(newElement); } return(result); }
protected static List <CmdArgumentJson> TransformCmdList(ICollection <CmdBase> items) { var result = new List <CmdArgumentJson>(items.Count); foreach (var item in items) { var newElement = new CmdArgumentJson { Id = item.Id, Command = item.Value, ProjectConfig = item.ProjectConfig, LaunchProfile = item.LaunchProfile, // not in JSON Selected = item.IsSelected, }; if (item is CmdArgument arg) { newElement.DefaultChecked = arg.DefaultChecked; // not in JSON newElement.Enabled = item.IsChecked ?? false; } if (item is CmdContainer container) { newElement.Items = TransformCmdList(container.Items); newElement.ExclusiveMode = container.ExclusiveMode; newElement.Delimiter = container.Delimiter; // not in JSON newElement.Expanded = container.IsExpanded; } result.Add(newElement); } return(result); }
public static ProjectDataJson ParseOldJsonFormat(JToken root) { var result = new ProjectDataJson(); if (root is JObject) { foreach (var item in root["DataCollection"]) { var listItem = new CmdArgumentJson(); result.Items.Add(listItem); listItem.Command = (string)item["Command"]; listItem.Enabled = ((bool?)item["Enabled"]).GetValueOrDefault(); if (Guid.TryParse((string)item["Id"], out Guid parsedID)) { listItem.Id = parsedID; } } } return(result); }