Exemple #1
0
        public static XmlElement GetXmlElementByMyTask(XmlDocument doc, MyTask task)
        {
            XmlElement res = doc.CreateElement("Task");

            //Task Id element
            XmlElement Id     = doc.CreateElement("Id");
            XmlText    textId = doc.CreateTextNode(task.Id.ToString());

            Id.AppendChild(textId);

            //Task CreateTime element
            XmlElement CreateTime     = doc.CreateElement("CreateTime");
            XmlText    textCreateTime = doc.CreateTextNode(task.CreateTime.ToString());

            CreateTime.AppendChild(textCreateTime);

            //Task Name element
            XmlElement Name     = doc.CreateElement("Name");
            XmlText    textName = doc.CreateTextNode(task.Name);

            Name.AppendChild(textName);

            XmlElement Reveal     = doc.CreateElement("Reveal");
            XmlText    textReveal = doc.CreateTextNode(task.Revealed.ToString());

            Reveal.AppendChild(textReveal);

            //Task Status element
            XmlElement Status     = doc.CreateElement("Status");
            XmlText    textStatus = doc.CreateTextNode(task.GetStatusString());

            Status.AppendChild(textStatus);

            //Task Level element
            XmlElement Level     = doc.CreateElement("Level");
            XmlText    textLevel = doc.CreateTextNode(task.Level.ToString());

            Level.AppendChild(textLevel);

            //Task SubTasks element
            XmlElement SubTasks = doc.CreateElement("SubTasks");


            res.AppendChild(Id);
            res.AppendChild(CreateTime);
            res.AppendChild(Name);
            res.AppendChild(Level);
            res.AppendChild(Status);
            res.AppendChild(Reveal);

            //Рекурсивно добавляем подзадачи
            foreach (var subTask in task.SubTasks)
            {
                SubTasks.AppendChild(MyTaskXmlPresenter.GetXmlElementByMyTask(doc, subTask));
            }

            res.AppendChild(SubTasks);

            return(res);
        }
Exemple #2
0
        public static MyTask GetMyTaskByXmlElement(XmlElement elem)
        {
            string name  = elem.GetElementsByTagName("Name")?.Item(0).InnerText;
            int    level = Convert.ToInt32(elem.GetElementsByTagName("Level")?.Item(0)?.InnerText);

            MyTask res = new MyTask(name, level);

            res.CreateTime = Convert.ToDateTime(elem.GetElementsByTagName("CreateTime")?.Item(0)?.InnerText);
            res.Id         = Convert.ToInt32(elem.GetElementsByTagName("Id")?.Item(0)?.InnerText);
            res.SetStatusByString(elem.GetElementsByTagName("Status")?.Item(0)?.InnerText);
            res.Revealed = Convert.ToBoolean(elem.GetElementsByTagName("Reveal")?.Item(0)?.InnerText);

            var subTasksElem = elem.GetElementsByTagName("SubTasks")?.Item(0);

            if (subTasksElem == null || subTasksElem.HasChildNodes == false)
            {
                return(res);
            }

            //Рекурсивно преобразовываем подзадачи
            foreach (var subTaskElem in subTasksElem?.SelectNodes("Task"))
            {
                res.SubTasks.Add(MyTaskXmlPresenter.GetMyTaskByXmlElement(subTaskElem as XmlElement));
            }

            return(res);
        }
Exemple #3
0
        //public MyProject GetProjectItem()
        //{
        //    return MyTaskXmlPresenter.GetMyProjectFromXmlElement(
        //        this.Doc.Body.GetElementsByTagName("Project")?.Item(0) as XmlElement);

        //}

        public bool GetProjectItem(ref MyProject proj)
        {
            if (File.Exists(this.Doc.Path) == false)
            {
                return(false);
            }

            return(MyTaskXmlPresenter.GetMyProjectFromXmlElement(ref proj,
                                                                 this?.Doc?.Body?.GetElementsByTagName("Project")?.Item(0) as XmlElement));
        }
Exemple #4
0
        public void SaveProject(MyProject proj)
        {
            var XmlProject = MyTaskXmlPresenter.GetXmlFromMyProject(this.Doc.Doc, proj);

            if (this.Doc == null || this.Doc.Body == null)
            {
                this?.Doc?.InitDocAndBodyIfNeed();
            }

            this.Doc.Body.RemoveAll();
            this.Doc.Body.AppendChild(XmlProject);
            this.Doc.Save();
        }
Exemple #5
0
        public static XmlElement GetXmlFromMyProject(XmlDocument doc, MyProject proj)
        {
            XmlElement res = doc.CreateElement("Project");

            //Project Id element
            XmlElement Id     = doc.CreateElement("Id");
            XmlText    textId = doc.CreateTextNode(proj?.Id?.ToString());

            Id.AppendChild(textId);

            //Project CreateTime element
            XmlElement CreateTime     = doc.CreateElement("CreateTime");
            XmlText    textCreateTime = doc.CreateTextNode(proj?.CreateTime.ToString());

            CreateTime.AppendChild(textCreateTime);

            //Task Name element
            XmlElement Name     = doc.CreateElement("Name");
            XmlText    textName = doc.CreateTextNode(proj?.Name);

            Name.AppendChild(textName);


            //Task Name element
            XmlElement Description     = doc.CreateElement("Description");
            XmlText    textDescription = doc.CreateTextNode(proj?.Description);

            Description.AppendChild(textDescription);

            XmlElement TaskRoot = null;

            if (proj?.TaskRoot != null)
            {
                TaskRoot = MyTaskXmlPresenter.GetXmlElementByMyTask(doc, proj.TaskRoot);
            }

            res.AppendChild(Id);
            res.AppendChild(CreateTime);
            res.AppendChild(Name);
            res.AppendChild(Description);

            if (TaskRoot != null)
            {
                res.AppendChild(TaskRoot);
            }

            return(res);
        }
Exemple #6
0
        //public static MyProject GetMyProjectFromXmlElement(XmlElement elem)
        //{
        //    MyProject proj = new MyProject("");
        //    if (MyTaskXmlPresenter.GetMyProjectFromXmlElement(ref proj, elem))
        //    {
        //        return proj;
        //    }

        //    return null;
        //}

        public static bool GetMyProjectFromXmlElement(ref MyProject proj, XmlElement elem)
        {
            if (elem == null)
            {
                return(false);
            }
            if (elem.Name != "Project")
            {
                return(false);
            }

            proj.Name        = elem.GetElementsByTagName("Name")?.Item(0)?.InnerText;
            proj.Id          = elem.GetElementsByTagName("Id")?.Item(0)?.InnerText;
            proj.CreateTime  = Convert.ToDateTime(elem.GetElementsByTagName("CreateTime")?.Item(0)?.InnerText);
            proj.Description = elem.GetElementsByTagName("Description")?.Item(0)?.InnerText;

            proj.TaskRoot =
                MyTaskXmlPresenter.GetMyTaskByXmlElement(elem.GetElementsByTagName("Task")?.Item(0) as XmlElement);
            return(true);
        }