public TimeItem LoadTimeItem(Guid id) { TimeItem timeItem = null; XDocument xDoc = XDocument.Load(this.DataSource); var dbElement = (from item in xDoc.Descendants("TimeClockDataSource").Descendants("TimeItems").Descendants("TimeItem") where item.Attribute("id").Value == id.ToString() select item).FirstOrDefault(); if (dbElement != null) { timeItem = new TimeItem { Id = id, Name = dbElement.Element("Name").Value, Description = dbElement.Element("Description").Value, Group = dbElement.Element("Group").Value, Status = (TimeItemStatus)Convert.ToInt32(dbElement.Attribute("Status")) }; foreach (var tickElement in dbElement.Descendants("Ticks")) { timeItem.Ticks.Add( new TimeItemTick { Start = Convert.ToDateTime(tickElement.Element("Start")), End = Convert.ToDateTime(tickElement.Element("End")) }); } } return timeItem; }
public void DeleteTimeItem(TimeItem ti) { DeleteTimeItem(ti.Id); }
public void SaveTimeItem(TimeItem ti) { if (ti == null) { throw new NullReferenceException("TimeItem is null"); } XDocument xDoc = XDocument.Load(this.DataSource); var dbElement = (from item in xDoc.Descendants("TimeClockDataSource").Descendants("TimeItems").Descendants("TimeItem") where item.Attribute("id").Value == ti.Id.ToString() select item).FirstOrDefault(); if(dbElement != null) { dbElement.Attribute("status").Value = Convert.ToInt32(ti.Status).ToString(); dbElement.Element("Name").Value = ti.Name; dbElement.Element("Description").Value = ti.Description; dbElement.Element("Group").Value = ti.Group; dbElement.Element("Ticks").Value = null; } else { dbElement = new XElement("TimeItem", new XElement("Name", ti.Name), new XElement("Description", ti.Description), new XElement("Group", ti.Group), new XElement("Ticks")); dbElement.Add(new XAttribute("id", ti.Id)); dbElement.Add(new XAttribute("status", Convert.ToInt32(ti.Status).ToString())); xDoc.Element("Customers").Add(dbElement); } foreach (TimeItemTick tick in ti.Ticks) { XElement tickElement = new XElement("Tick", new XElement("Start", tick.Start), new XElement("End", tick.End)); dbElement.Element("Ticks").Add(tickElement); } xDoc.Save(".\\DataSource.Xml"); }