예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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;
            }
        }