Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 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);
 }