/// <summary> /// Statyczna publiczna metoda SaveBipartitegraph do /// wywoływania z innych miejsc programu do zapisywania /// konkretnego grafu, pozwala wybrac użytkownikowi gdzie /// i pod jaką nazwą plik bedzie zapisany /// </summary> /// <param name="obj">obiekt klasy BipartiteGraph <see cref="BipartiteGraph"/></param> public static void SaveBipartitegraph(BipartiteGraph obj) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "graph files (*.graph)|*.graph"; if (saveFileDialog.ShowDialog() == true) { Serialize(saveFileDialog.FileName, obj); } }
/// <summary> /// Metoda Serialize zapisująca do konkretnego pliku graf /// </summary> /// <param name="path">ścieżka pliku</param> /// <param name="obj">obiekt BipartiteGraph<see cref="BipartiteGraph"/></param> private static void Serialize(string path, BipartiteGraph obj) { if (obj != null) { using (var fs = new FileStream(path, FileMode.Create)) { var bf = new BinaryFormatter(); bf.Serialize(fs, obj); } } }
/// <summary> /// Statyczna metoda IsComplete sprawdzająca czy graf jest zupełny /// </summary> /// <param name="bipartiteGraph">Przyjmuje jako argument klasę grafu dwudzielnego <see cref="BipartiteGraph"/></param> /// <returns>zwraca wartość true false</returns> public static bool IsComplete(BipartiteGraph bipartiteGraph) { for (int i = 0; i < bipartiteGraph.Left.AllVertecs.Count; i++) { for (int j = 0; j < bipartiteGraph.Right.AllVertecs.Count; j++) { if (!bipartiteGraph.Left.AllVertecs[i].connectedWith.Contains(bipartiteGraph.Right.AllVertecs[j])) { return(false); } } } return(true); }
/// <summary> /// Metoda Deserialize wczytująca z konkretnegej ścieżki plik i zwracająca go jako BipartiteGraph <see cref="BipartiteGraph"/> /// </summary> /// <param name="path">ścieżka do pliku</param> /// <returns>Zwraca klasę BipartiteGraph wczytaną z pliku <see cref="BipartiteGraph"/></returns> private static BipartiteGraph Deserialize(string path) { BipartiteGraph temp = default(BipartiteGraph); if (File.Exists(path)) { using (var fs = new FileStream(path, FileMode.Open)) { if (fs.Length > 0) { var bf = new BinaryFormatter(); return((BipartiteGraph)bf.Deserialize(fs)); } } } return(temp); }