client/src/Iri.Modernisation.Data/Ldt/IRIElement.cs
changeset 35 43bb1b8ed555
parent 34 4d9ebc6fbbe8
child 38 bd33267300aa
--- a/client/src/Iri.Modernisation.Data/Ldt/IRIElement.cs	Tue Jan 19 09:49:56 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Ldt/IRIElement.cs	Mon Jan 25 09:30:22 2010 +0100
@@ -8,11 +8,103 @@
 using System.Windows.Media;
 using System.Windows.Media.Animation;
 using System.Windows.Shapes;
-
-namespace Iri.Modernisation.Data.Ldt
+using System.Xml.Linq;
+using System.Collections.Generic;
+namespace Iri.Modernisation.Data.LDTClass
 {
     public class IRIElement
     {
+        //<element id="elD_0" order="" prev="" next="" begin="0" dur="933" author="DDC - IRI" date="06/2006" title="plan 0" abstract="" src="testauthor_testtitle/thumbs/0_in.jpg"/>
 
+        public String Id { get; set; }
+        public int Order { get; set; }
+        public DateTime Date { get; set; }
+        public int Chapter { get; set; }
+        public String Prev { get; set; }
+        public String Next { get; set; }
+        public TimeSpan Begin { get; set; }
+        public TimeSpan Dur { get; set; }
+        public String Author { get; set; }
+        public String Title { get; set; }
+        public String Abstract { get; set; }
+        public String Src { get; set; }
+        public List<String> Tags { get; set; }
+
+        public IRIElement()
+        {
+            Id = String.Empty;
+            Order = 0;
+            Chapter = 0;
+            Prev = String.Empty;
+            Next = String.Empty;
+            Begin = TimeSpan.Zero;
+            Dur = TimeSpan.Zero;
+            Author = String.Empty;
+            Title = String.Empty;
+            Abstract = String.Empty;
+            Src = String.Empty;
+            Tags = new List<string>();
+        }
+        public IRIElement(XElement elem)
+        {
+            Id = elem.Attribute("id").Value;
+            Order = int.Parse(elem.Attribute("order").Value);
+            Prev = elem.Attribute("prev").Value;
+            Next = elem.Attribute("next").Value;
+            Begin = TimeSpan.FromMilliseconds(double.Parse(elem.Attribute("begin").Value));
+            Dur = TimeSpan.FromMilliseconds(double.Parse(elem.Attribute("dur").Value));
+            Author = elem.Attribute("author").Value;
+            Title = elem.Attribute("title").Value;
+            Abstract = elem.Attribute("abstract").Value;
+            Src = elem.Attribute("src").Value;
+            if(elem.Element("tags")!=null)
+            {
+                foreach (XElement XTag in elem.Element("tags").Elements())
+                {
+                    Tags.Add(XTag.Value);
+                }
+            }
+            if(elem.Element("chapter")!=null)
+            {
+                Chapter = int.Parse(elem.Element("chapter").Value);
+            }
+            if (elem.Element("date") != null)
+            {
+                Date = DateTime.Parse(elem.Element("date").Value);
+            }
+            else
+            {
+                Date = DateTime.Now;
+            }
+        }
+        public XElement XML
+        {
+            get
+            {
+                XElement temp =  new XElement("element",
+                    new XAttribute("id",Id),
+                    new XAttribute("order",Order),
+                    new XAttribute("date",Date.ToString("dd/MM/yyyy")),
+                    new XAttribute("chapter",Chapter),
+                    new XAttribute("prev",Prev),
+                    new XAttribute("next",Next),
+                    new XAttribute("begin",Begin.TotalMilliseconds),
+                    new XAttribute("dur",Dur.TotalMilliseconds),
+                    new XAttribute("author",Author),
+                    new XElement("title",Title),
+                    new XElement("abstract", Abstract),
+                    new XAttribute("src",Src)
+                    );
+                XElement Xtags = new XElement("tags");
+                foreach (String tag in Tags)
+                {
+                    Xtags.Add(new XElement("tag", tag));
+                }
+                temp.Add(Xtags);
+
+
+                return temp;
+            }
+        }
     }
 }