public static void AddNewExerciseSerie(ExerciseSerie item) { bool itemIsAdded = false; for (int i = exerciseLogs.Count - 1; i >= 0; i--) { ExerciseSerie serie = exerciseLogs[i]; if (serie.Type.Equals(item.Type)) { foreach (ExerciseAttempt attempt in item.Attempts) { serie.Attempts.Add(attempt); } itemIsAdded = true; break; } } if (!itemIsAdded) { exerciseLogs.Add(item); } }
/// <summary> /// Считывание полей из XmlNode. /// </summary> /// <param name="xmlNode"></param> /// <returns></returns> public static ExerciseSerie CreateFromXml(XmlNode xmlNode) { ExerciseSerie result = new ExerciseSerie(); result.type = ExerciseType.CreateFromXml(xmlNode); foreach (XmlNode item in xmlNode.ChildNodes) { result.attempts.Add(ExerciseAttempt.CreateFromXml(item)); } return(result); }
public static Collection <ExerciseSerie> CreateSeriesFromFile(string fileName) { Collection <ExerciseSerie> result = new Collection <ExerciseSerie>(); if (File.Exists(fileName)) { XmlDocument logFile = new XmlDocument(); logFile.Load(fileName); XmlNode root = logFile[rootNodeName]; for (int i = 0; i < root.ChildNodes.Count; i++) { XmlNode node = root.ChildNodes[i]; ExerciseSerie tmp = ExerciseSerie.CreateFromXml(node); tmp.SortAttempts(); result.Add(tmp); } } return(result); }
public static void SaveProgramsLogs() { if (exerciseLogs.Count > 0) { XmlDocument logFile = new XmlDocument(); if (!Directory.Exists(Config.LogFolder)) { Directory.CreateDirectory(Config.LogFolder); } string fileName = DefaultFullFileName(DateTime.Now); if (File.Exists(fileName)) { logFile.Load(fileName); } else { logFile.AppendChild(logFile.CreateXmlDeclaration("1.0", "utf-8", "yes")); logFile.AppendChild(logFile.CreateElement(rootNodeName)); } XmlNode root = logFile[rootNodeName]; foreach (ExerciseSerie item in exerciseLogs) { if (item.Attempts.Count > 0) { bool itemIsSaved = false; for (int i = root.ChildNodes.Count - 1; i >= 0; i--) { XmlNode node = root.ChildNodes[i]; ExerciseSerie tmp = ExerciseSerie.CreateFromXml(node); if (tmp.Type.Equals(item.Type)) { foreach (ExerciseAttempt attemp in item.Attempts) { node.AppendChild(attemp.CreateXmlNode(node.OwnerDocument)); } itemIsSaved = true; break; } } if (!itemIsSaved) { XmlNode node = item.CreateXmlNode(logFile, "ExerciseSerie"); root.AppendChild(node); } } } exerciseLogs.Clear(); logFile.Save(fileName); } }