public static List <Facility> LoadClusteringSolution(string inputFileClusteringResult, out string inputFileVertices) { List <Facility> facilities = null; inputFileVertices = null; using (StreamReader reader = new StreamReader(inputFileClusteringResult)) { ClusteringInfo info = JsonConvert.DeserializeObject <ClusteringInfo>(reader.ReadLine()); inputFileVertices = info.inputFile; // skip to separator header while (!reader.ReadLine().Equals(SEPARATOR_HEADER)) { ; } string line; facilities = new List <Facility>(); while ((line = reader.ReadLine()) != null) { facilities.Add(JsonConvert.DeserializeObject <Facility>(line)); } } return(facilities); }
public static bool SaveClusteringSolution(IClustering algorithm, string inputFile, string outputFile, List <Facility> facilities) { if (facilities == null) { return(false); } using (StreamWriter writer = new StreamWriter(outputFile)) { ClusteringInfo info = new ClusteringInfo(); info.date = DateTime.Now; info.inputFile = inputFile; info.outputFile = outputFile; // write some information header writer.WriteLine(JsonConvert.SerializeObject(info)); writer.WriteLine(algorithm.GetInfo()); writer.WriteLine(SEPARATOR_HEADER); // write structure it self foreach (Facility f in facilities) { writer.WriteLine(JsonConvert.SerializeObject(f)); } } return(true); }