示例#1
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }