public dynamic Serialize(WaveDesignerViewModel waveDesigner) { return(new { Nodes = SerializeNodes(waveDesigner.TreeDesigner), Connections = SerializeConnections(waveDesigner.TreeDesigner) }); }
protected override void OnStartup(StartupEventArgs e) { var container = PrepareServiceProvider(); WaveDesigner = container.GetRequiredService <WaveDesignerViewModel>(); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(WaveDesigner))); base.OnStartup(e); }
public void Deserialize(WaveDesignerViewModel viewModel, dynamic value) { viewModel.TreeDesigner.Nodes = (value.Nodes as IEnumerable <dynamic>) .Select(nodeDescription => (NodeViewModel)DeserializeNode(nodeDescription)) .ToList(); foreach (var connection in value.Connections) { viewModel.TreeDesigner.Nodes.ElementAt((int)connection.From).AddInput(viewModel.TreeDesigner.Nodes.ElementAt((int)connection.To)); } }
public void Load(WaveDesignerViewModel viewModel) { if (!AskUserToLoad(out string fileName)) { return; } var fileContent = File.ReadAllText(fileName); ReadFromJson(viewModel, fileContent); }
public void Save(WaveDesignerViewModel waveDesigner) { if (!AskUserToSave(out string fileName)) { return; } var fileContent = ConvertToJson(waveDesigner); File.WriteAllText(fileName, fileContent); }
private void ReadFromJson(WaveDesignerViewModel waveDesigner, string json) { dynamic value = JObject.Parse(json); _serializationHelper.Deserialize(waveDesigner, value); }
private string ConvertToJson(WaveDesignerViewModel waveDesigner) { var payload = _serializationHelper.Serialize(waveDesigner); return(JsonConvert.SerializeObject(payload, Formatting.Indented)); }