protected override void PersistNewItem(IMemberType entity) { ((MemberType)entity).AddingEntity(); //By Convention we add 9 stnd PropertyTypes to an Umbraco MemberType var standardPropertyTypes = Constants.Conventions.Member.StandardPropertyTypeStubs; foreach (var standardPropertyType in standardPropertyTypes) { entity.AddPropertyType(standardPropertyType.Value); } var factory = new MemberTypeFactory(NodeObjectTypeId); var dto = factory.BuildDto(entity); PersistNewBaseContentType(dto, entity); //Handles the MemberTypeDto (cmsMemberType table) var memberTypeDtos = factory.BuildMemberTypeDtos(entity); foreach (var memberTypeDto in memberTypeDtos) { Database.Insert(memberTypeDto); } ((ICanBeDirty)entity).ResetDirtyProperties(); }
protected override void PersistUpdatedItem(IMemberType entity) { ValidateAlias(entity); //Updates Modified date ((MemberType)entity).UpdatingEntity(); //Look up parent to get and set the correct Path if ParentId has changed if (entity.IsPropertyDirty("ParentId")) { var parent = Database.First <NodeDto>("WHERE id = @ParentId", new { ParentId = entity.ParentId }); entity.Path = string.Concat(parent.Path, ",", entity.Id); entity.Level = parent.Level + 1; var maxSortOrder = Database.ExecuteScalar <int>( "SELECT coalesce(max(sortOrder),0) FROM umbracoNode WHERE parentid = @ParentId AND nodeObjectType = @NodeObjectType", new { ParentId = entity.ParentId, NodeObjectType = NodeObjectTypeId }); entity.SortOrder = maxSortOrder + 1; } var factory = new MemberTypeFactory(NodeObjectTypeId); var dto = factory.BuildDto(entity); EnsureExplicitDataTypeForBuiltInProperties(entity); PersistUpdatedBaseContentType(dto, entity); //Remove existing entries before inserting new ones Database.Delete <MemberTypeDto>("WHERE NodeId = @Id", new { Id = entity.Id }); //Handles the MemberTypeDto (cmsMemberType table) var memberTypeDtos = factory.BuildMemberTypeDtos(entity); foreach (var memberTypeDto in memberTypeDtos) { Database.Insert(memberTypeDto); } entity.ResetDirtyProperties(); }
protected override void PersistNewItem(IMemberType entity) { ValidateAlias(entity); ((MemberType)entity).AddingEntity(); //set a default icon if one is not specified if (entity.Icon.IsNullOrWhiteSpace()) { entity.Icon = "icon-user"; } //By Convention we add 9 stnd PropertyTypes to an Umbraco MemberType entity.AddPropertyGroup(Constants.Conventions.Member.StandardPropertiesGroupName); var standardPropertyTypes = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); foreach (var standardPropertyType in standardPropertyTypes) { entity.AddPropertyType(standardPropertyType.Value, Constants.Conventions.Member.StandardPropertiesGroupName); } var factory = new MemberTypeFactory(NodeObjectTypeId); var dto = factory.BuildDto(entity); EnsureExplicitDataTypeForBuiltInProperties(entity); PersistNewBaseContentType(dto, entity); //Handles the MemberTypeDto (cmsMemberType table) var memberTypeDtos = factory.BuildMemberTypeDtos(entity); foreach (var memberTypeDto in memberTypeDtos) { Database.Insert(memberTypeDto); } entity.ResetDirtyProperties(); }