public XmlElement ToXml(XmlDocument xd) { XmlElement dt = xd.CreateElement("DataType"); dt.Attributes.Append(xmlHelper.addAttribute(xd, "Name", Text)); dt.Attributes.Append(xmlHelper.addAttribute(xd, "Id", this.DataType.Id.ToString())); dt.Attributes.Append(xmlHelper.addAttribute(xd, "Definition", this.UniqueId.ToString())); dt.Attributes.Append(xmlHelper.addAttribute(xd, "DatabaseType", this.DbType)); // templates XmlElement prevalues = xd.CreateElement("PreValues"); foreach (DictionaryEntry item in PreValues.GetPreValues(this.Id)) { XmlElement prevalue = xd.CreateElement("PreValue"); prevalue.Attributes.Append(xmlHelper.addAttribute(xd, "Id", ((PreValue)item.Value).Id.ToString())); prevalue.Attributes.Append(xmlHelper.addAttribute(xd, "Value", ((PreValue)item.Value).Value)); prevalues.AppendChild(prevalue); } dt.AppendChild(prevalues); return(dt); }
public override void delete() { DeleteEventArgs e = new DeleteEventArgs(); FireBeforeDelete(e); if (!e.Cancel) { //first clear the prevalues PreValues.DeleteByDataTypeDefinition(this.Id); //next clear out the property types var propTypes = PropertyType.GetByDataTypeDefinition(this.Id); foreach (var p in propTypes) { p.delete(); } //delete the cmsDataType role, then the umbracoNode SqlHelper.ExecuteNonQuery("delete from cmsDataType where nodeId=@nodeId", SqlHelper.CreateParameter("@nodeId", this.Id)); base.delete(); cache.Cache.ClearCacheItem(string.Format("UmbracoDataTypeDefinition{0}", Id)); FireAfterDelete(e); } }
private void ensurePrevalue() { if (!_isEnsured) { int defId; if (_datatype != null) { defId = _datatype.DataTypeDefinitionId; } else if (_datatypeOld != null) { defId = _datatypeOld.DataTypeDefinitionId; } else { throw new ArgumentException("Datatype is not initialized"); } bool hasPrevalue = PreValues.CountOfPreValues(defId) > 0; if (!hasPrevalue) { PreValue.MakeNew(defId, _textbox.Text); } _isEnsured = true; } }