public void ShouldBeSerializable() { var node1 = graph.AddNode(0, 0, Color.Red); var node2 = graph.AddNode(1, 1, Color.Green); graph.AddEdge(node1, node2, 42, Color.Blue); var json1 = UiGraph.Serialize(graph); var deserializedGraph = UiGraph.Deserialize(json1); var json2 = UiGraph.Serialize(deserializedGraph); json1.Should().Be(json2); }
private void OpenFile_Click(object sender, EventArgs e) { using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = " GraphMaker files (*.gm)|*.gm"; openFileDialog.FilterIndex = 1; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { var fileName = openFileDialog.FileName; var json = File.ReadAllText(fileName); UiGraph deserializedGraph; try { deserializedGraph = UiGraph.Deserialize(json); if (deserializedGraph == null) { throw new ArgumentException("Файл пуст."); } } catch (Exception ex) { MessageBox.Show($"Не удалось десериализовать граф из указанного файла: {ex.Message}"); return; } graph = deserializedGraph; graph.Changed += OnGraphUpdate; selectedEdge = null; clickedEdge = null; cbEdgeSizeChange.Items.Clear(); foreach (var edge in graph.Edges) { cbEdgeSizeChange.Items.Add(edge); } if (cbEdgeSizeChange.SelectedIndex == -1) { nudEdgeSizeChange.Value = 1; } draw(); } } }