public int Save(IPlan entity, bool now = true) { var current = entity as Plan; current.ChangedData = entity.PossibleChangeDate == null ? default(DateTime) : entity.PossibleChangeDate.Value; var plan = new XmlPlan() { Plan = current }; using (var stream = plan.Serialize()) { stream.Position = 0; var currentDocument = XDocument.Load(stream); if (currentDocument.Root != null) { var element = currentDocument.Root.Elements().First(); AppendElement(element, "Id", null); if (now) { Document.Save(Path); } var id = int.Parse(element.Attribute("Id").Value); entity.Id = id; return(id); } return(-1); } }
public IPlan Read(int id) { if (Document.Root.Elements().Any()) { var res = Document.Root.Elements().FirstOrDefault(c => c.Attribute("Id").Value == id.ToString()); if (res != null) { var textReader = new StringReader(res.ToString()); var plan = XmlPlan.Deserialize(textReader); DateTime?current; if (plan.ChangedData == default(DateTime)) { current = null; } else { current = plan.ChangedData; } plan.PossibleChangeDate = current; return(plan); } } return(null); }