Beispiel #1
0
        /// <summary>
        /// Deletes custom field
        /// </summary>
        /// <param name="field">Object field</param>
        public override void DeleteCustomField(Data.Models.CustomField field)
        {
            var fileName = Path.Combine(this.Folder, _customFieldsFile);
            var xmlDoc   = new XmlDocument();

            xmlDoc.Load(fileName);
            var items = xmlDoc.SelectNodes("CustomFields/item");

            if (items != null && items.Count > 0)
            {
                for (int i = 0; i < items.Count; i++)
                {
                    if (items[i].Attributes != null &&
                        items[i].Attributes["customtype"] != null &&
                        items[i].Attributes["blogid"] != null &&
                        items[i].Attributes["objectid"] != null &&
                        items[i].Attributes["key"] != null)
                    {
                        if (field.CustomType == items[i].Attributes["customtype"].InnerText &&
                            field.BlogId.ToString() == items[i].Attributes["blogid"].InnerText &&
                            field.ObjectId == items[i].Attributes["objectid"].InnerText &&
                            field.Key == items[i].Attributes["key"].InnerText)
                        {
                            if (items[i].ParentNode != null)
                            {
                                items[i].ParentNode.RemoveChild(items[i]);
                            }
                        }
                    }
                }
            }
            xmlDoc.Save(fileName);
        }
Beispiel #2
0
        /// <summary>
        /// Saves custom field
        /// </summary>
        /// <param name="field">Object custom field</param>
        public override void SaveCustomField(Data.Models.CustomField field)
        {
            var fileName = Path.Combine(this.Folder, _customFieldsFile);

            var x = FillCustomFields();

            var items = FillCustomFields() ?? new List <Data.Models.CustomField>();
            int idx   = -1;

            for (int index = 0; index < items.Count; index++)
            {
                var n = items[index];
                if (n.CustomType == field.CustomType && n.BlogId == field.BlogId && field.ObjectId == n.ObjectId && n.Key == field.Key)
                {
                    idx = index;
                    break;
                }
            }

            if (idx >= 0)
            {
                items.RemoveAt(idx);
            }

            items.Add(field);

            using (var writer = new XmlTextWriter(fileName, Encoding.UTF8))
            {
                writer.Formatting  = Formatting.Indented;
                writer.Indentation = 4;
                writer.WriteStartDocument(true);
                writer.WriteStartElement("CustomFields");

                foreach (var n in items)
                {
                    writer.WriteStartElement("item");
                    writer.WriteAttributeString("customtype", n.CustomType);
                    writer.WriteAttributeString("objectid", n.ObjectId);
                    writer.WriteAttributeString("blogid", Blog.CurrentInstance.Id.ToString());
                    writer.WriteAttributeString("key", n.Key);
                    writer.WriteAttributeString("value", n.Value);
                    writer.WriteAttributeString("attribute", n.Attribute);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
            }
        }