Beispiel #1
0
        public int Save(ArticleGroup entity, bool now = true)
        {
            var xmlGroups = new XmlArtcileGroup()
            {
                ArticleGroup = entity
            };
            var duplicated = Document.Root.Elements().FirstOrDefault(c => c.Attribute("GroupName").Value == entity.GroupName);

            if (duplicated != null)
            {
                if (now)
                {
                    throw new Exception("Группа с именем \"{0}\" уже существует".Fmt(entity.GroupName));
                }
                else
                {
                    _builder.Append("Группа с именем \"{0}\" уже существует".Fmt(entity.GroupName));
                }
            }

            using (var stream = xmlGroups.Serialize())
            {
                stream.Position = 0;
                var currentDocument = XDocument.Load(stream);
                if (currentDocument.Root != null)
                {
                    var element = currentDocument.Root.Elements().First();
                    if (duplicated != null)
                    {
                        return(-1);
                    }
                    else
                    {
                        AppendElement(element, "GroupId", null);
                        if (entity.Groups != null)
                        {
                            foreach (var @group in entity.Groups)
                            {
                                var innerElement = new XElement("Groups", @group);
                                element.Add(innerElement);
                            }
                        }
                        if (now)
                        {
                            Document.Save(Path);
                        }
                        var id = int.Parse(element.Attribute("GroupId").Value);
                        entity.GroupId = id;
                        return(id);
                    }
                }
                return(-1);
            }
        }
Beispiel #2
0
 public ArticleGroup Read(int id)
 {
     if (Document.Root.Elements().Any())
     {
         var res = Document.Root.Elements().FirstOrDefault(c => c.Attribute("GroupId").Value == id.ToString());
         if (res != null)
         {
             var textReader = new StringReader(res.ToString());
             return(XmlArtcileGroup.Deserialize(textReader));
         }
     }
     return(null);
 }