private static void InBetweenGeneration(int from, int to) { var file1 = Globals.Files[from]; var file2 = Globals.Files[to]; if (file2.IsLast) { file2 = Globals.Files[1]; } for (int fileNumber = from + 1; fileNumber < to; fileNumber++) { var newJoints = new List <ConcreteJoint>(); foreach (var concreteJoint1 in file1.ConcreteJoints) { var concreteJoint2 = file2.ConcreteJoints.FirstOrDefault(cj => cj.Id == concreteJoint1.Id); if (concreteJoint2 == null) { newJoints.Add(concreteJoint1); } else { newJoints.Add(ConcreteJoint.CreateInBetweenJoint(concreteJoint1, concreteJoint2, fileNumber - from, to - from)); } } var newFile = new JointFile { ConcreteJoints = newJoints, Lines = file1.Lines }; FileManager.Save(FileManager.GetFileName(fileNumber, Globals.CurrentFolder), newFile); } }
public static void Save(string fileName, JointFile jointFile) { var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; File.WriteAllText(fileName, JsonConvert.SerializeObject(jointFile, settings)); }
public void FromFile(JointFile file) { _concreteJoints = file.ConcreteJoints; var jointDict = _concreteJoints.ToDictionary(j => j.Id, j => j); var lines = new List <Line>(); foreach (var line in file.Lines) { var start = jointDict.ContainsKey(line.Start.Id) ? jointDict[line.Start.Id] : null; var end = jointDict.ContainsKey(line.Finish.Id) ? jointDict[line.Finish.Id] : null; if (start == null || end == null) { continue; } lines.Add(new Line(start, end)); } _lineManager.Lines = lines; }