/// <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); }
/// <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(); } }