diff --git a/src/Umbraco.Core/Models/Content.cs b/src/Umbraco.Core/Models/Content.cs
index 2238260611..b8e96c2793 100644
--- a/src/Umbraco.Core/Models/Content.cs
+++ b/src/Umbraco.Core/Models/Content.cs
@@ -340,18 +340,6 @@ namespace Umbraco.Core.Models
}
}
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if(Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
-
///
/// Method to call when Entity is being updated
///
diff --git a/src/Umbraco.Core/Models/ContentType.cs b/src/Umbraco.Core/Models/ContentType.cs
index 355d724fbe..b6021e6538 100644
--- a/src/Umbraco.Core/Models/ContentType.cs
+++ b/src/Umbraco.Core/Models/ContentType.cs
@@ -137,19 +137,6 @@ namespace Umbraco.Core.Models
return result;
}
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
-
-
///
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
///
diff --git a/src/Umbraco.Core/Models/ContentTypeBase.cs b/src/Umbraco.Core/Models/ContentTypeBase.cs
index a83defb7b5..7218a2421d 100644
--- a/src/Umbraco.Core/Models/ContentTypeBase.cs
+++ b/src/Umbraco.Core/Models/ContentTypeBase.cs
@@ -452,11 +452,6 @@ namespace Umbraco.Core.Models
/// Returns True if PropertyType was added, otherwise False
public bool AddPropertyType(PropertyType propertyType)
{
- if (propertyType.HasIdentity == false)
- {
- propertyType.Key = Guid.NewGuid();
- }
-
if (PropertyTypeExists(propertyType.Alias) == false)
{
_propertyTypes.Add(propertyType);
diff --git a/src/Umbraco.Core/Models/ContentTypeCompositionBase.cs b/src/Umbraco.Core/Models/ContentTypeCompositionBase.cs
index 5ac21885d7..cba0ed07b7 100644
--- a/src/Umbraco.Core/Models/ContentTypeCompositionBase.cs
+++ b/src/Umbraco.Core/Models/ContentTypeCompositionBase.cs
@@ -210,9 +210,6 @@ namespace Umbraco.Core.Models
/// Returns True if PropertyType was added, otherwise False
public override bool AddPropertyType(PropertyType propertyType, string propertyGroupName)
{
- if (propertyType.HasIdentity == false)
- propertyType.Key = Guid.NewGuid();
-
// ensure no duplicate alias - over all composition properties
if (PropertyTypeExists(propertyType.Alias))
return false;
diff --git a/src/Umbraco.Core/Models/DataTypeDefinition.cs b/src/Umbraco.Core/Models/DataTypeDefinition.cs
index a2ca15e46a..4c12d6fbef 100644
--- a/src/Umbraco.Core/Models/DataTypeDefinition.cs
+++ b/src/Umbraco.Core/Models/DataTypeDefinition.cs
@@ -265,13 +265,5 @@ namespace Umbraco.Core.Models
{
get { return _additionalData; }
}
-
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if(Key == default(Guid))
- Key = Guid.NewGuid();
- }
}
}
diff --git a/src/Umbraco.Core/Models/DictionaryItem.cs b/src/Umbraco.Core/Models/DictionaryItem.cs
index dcb67a337f..749c629d19 100644
--- a/src/Umbraco.Core/Models/DictionaryItem.cs
+++ b/src/Umbraco.Core/Models/DictionaryItem.cs
@@ -98,16 +98,5 @@ namespace Umbraco.Core.Models
enumerable => enumerable.GetHashCode()));
}
}
-
- ///
- /// Method to call before inserting a new entity in the db
- ///
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- Key = Guid.NewGuid();
- }
-
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/EntityBase/Entity.cs b/src/Umbraco.Core/Models/EntityBase/Entity.cs
index eeacb771a9..c4838dfd0a 100644
--- a/src/Umbraco.Core/Models/EntityBase/Entity.cs
+++ b/src/Umbraco.Core/Models/EntityBase/Entity.cs
@@ -62,9 +62,9 @@ namespace Umbraco.Core.Models.EntityBase
{
get
{
+ // if an entity does NOT have a UniqueId yet, assign one now
if (_key == Guid.Empty)
- return _id.ToGuid();
-
+ _key = Guid.NewGuid();
return _key;
}
set
@@ -136,6 +136,7 @@ namespace Umbraco.Core.Models.EntityBase
{
_hasIdentity = false;
_id = default(int);
+ _key = Guid.Empty;
}
///
@@ -242,6 +243,7 @@ namespace Umbraco.Core.Models.EntityBase
{
//Memberwise clone on Entity will work since it doesn't have any deep elements
// for any sub class this will work for standard properties as well that aren't complex object's themselves.
+ var ignored = this.Key; // ensure that 'this' has a key, before cloning
var clone = (Entity)MemberwiseClone();
//ensure the clone has it's own dictionaries
clone.ResetChangeTrackingCollections();
diff --git a/src/Umbraco.Core/Models/Media.cs b/src/Umbraco.Core/Models/Media.cs
index 4f922d28cf..a7e794a400 100644
--- a/src/Umbraco.Core/Models/Media.cs
+++ b/src/Umbraco.Core/Models/Media.cs
@@ -118,17 +118,5 @@ namespace Umbraco.Core.Models
//The Media Recycle Bin Id is -21 so we correct that here
ParentId = parentId == -20 ? -21 : parentId;
}
-
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/MediaType.cs b/src/Umbraco.Core/Models/MediaType.cs
index 052e231136..c8e2915afd 100644
--- a/src/Umbraco.Core/Models/MediaType.cs
+++ b/src/Umbraco.Core/Models/MediaType.cs
@@ -38,26 +38,5 @@ namespace Umbraco.Core.Models
: base(parent, alias)
{
}
-
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
-
- ///
- /// Method to call when Entity is being updated
- ///
- /// Modified Date is set and a new Version guid is set
- internal override void UpdatingEntity()
- {
- base.UpdatingEntity();
- }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/Member.cs b/src/Umbraco.Core/Models/Member.cs
index 7788fadf75..70c21e4307 100644
--- a/src/Umbraco.Core/Models/Member.cs
+++ b/src/Umbraco.Core/Models/Member.cs
@@ -509,11 +509,8 @@ namespace Umbraco.Core.Models
{
base.AddingEntity();
- if (Key == Guid.Empty)
- {
- Key = Guid.NewGuid();
+ if (ProviderUserKey == null)
ProviderUserKey = Key;
- }
}
///
diff --git a/src/Umbraco.Core/Models/MemberGroup.cs b/src/Umbraco.Core/Models/MemberGroup.cs
index e52448a11d..ff7e05be9e 100644
--- a/src/Umbraco.Core/Models/MemberGroup.cs
+++ b/src/Umbraco.Core/Models/MemberGroup.cs
@@ -60,17 +60,5 @@ namespace Umbraco.Core.Models
}
public IDictionary AdditionalData { get; private set; }
-
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/MemberType.cs b/src/Umbraco.Core/Models/MemberType.cs
index 74a879be81..9000a33b54 100644
--- a/src/Umbraco.Core/Models/MemberType.cs
+++ b/src/Umbraco.Core/Models/MemberType.cs
@@ -131,26 +131,5 @@ namespace Umbraco.Core.Models
MemberTypePropertyTypes.Add(propertyTypeAlias, tuple);
}
}
-
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
-
- ///
- /// Method to call when Entity is being updated
- ///
- /// Modified Date is set and a new Version guid is set
- internal override void UpdatingEntity()
- {
- base.UpdatingEntity();
- }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/PublicAccessEntry.cs b/src/Umbraco.Core/Models/PublicAccessEntry.cs
index 27d1cd2121..9e12d6ab57 100644
--- a/src/Umbraco.Core/Models/PublicAccessEntry.cs
+++ b/src/Umbraco.Core/Models/PublicAccessEntry.cs
@@ -108,18 +108,6 @@ namespace Umbraco.Core.Models
}
}
- ///
- /// Method to call on entity saved when first added
- ///
- internal override void AddingEntity()
- {
- if (Key == default(Guid))
- {
- Key = Guid.NewGuid();
- }
- base.AddingEntity();
- }
-
[DataMember]
public int LoginNodeId
{
diff --git a/src/Umbraco.Core/Models/PublicAccessRule.cs b/src/Umbraco.Core/Models/PublicAccessRule.cs
index 484652e8bd..c785d028d0 100644
--- a/src/Umbraco.Core/Models/PublicAccessRule.cs
+++ b/src/Umbraco.Core/Models/PublicAccessRule.cs
@@ -28,18 +28,6 @@ namespace Umbraco.Core.Models
public Guid AccessEntryId { get; internal set; }
- ///
- /// Method to call on entity saved when first added
- ///
- internal override void AddingEntity()
- {
- if (Key == default(Guid))
- {
- Key = Guid.NewGuid();
- }
- base.AddingEntity();
- }
-
public string RuleValue
{
get { return _ruleValue; }
diff --git a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs
index 7003c58e77..c5fac092df 100644
--- a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs
@@ -10,12 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
[ExplicitColumns]
internal class NodeDto
{
- public NodeDto()
- {
- //By default, always generate a new guid
- UniqueId = Guid.NewGuid();
- }
-
public const int NodeIdSeed = 1050;
[Column("id")]
diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs
index 74a6d34289..2be4b24157 100644
--- a/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs
@@ -10,12 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
[ExplicitColumns]
internal class PropertyTypeDto
{
- public PropertyTypeDto()
- {
- //by default always create a new guid
- UniqueId = Guid.NewGuid();
- }
-
[Column("id")]
[PrimaryKeyColumn(IdentitySeed = 50)]
public int Id { get; set; }
diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
index 42abd9ed49..68de420a97 100644
--- a/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
@@ -11,12 +11,6 @@ namespace Umbraco.Core.Models.Rdbms
[ExplicitColumns]
internal class PropertyTypeGroupDto
{
- public PropertyTypeGroupDto()
- {
- //by default always create a new guid
- UniqueId = Guid.NewGuid();
- }
-
[Column("id")]
[PrimaryKeyColumn(IdentitySeed = 12)]
public int Id { get; set; }
diff --git a/src/Umbraco.Core/Models/Template.cs b/src/Umbraco.Core/Models/Template.cs
index 4aca88f286..1c8b44b674 100644
--- a/src/Umbraco.Core/Models/Template.cs
+++ b/src/Umbraco.Core/Models/Template.cs
@@ -118,18 +118,6 @@ namespace Umbraco.Core.Models
return ApplicationContext.Current.Services.FileService.DetermineTemplateRenderingEngine(this);
}
- ///
- /// Method to call when Entity is being saved
- ///
- /// Created date is set and a Unique key is assigned
- internal override void AddingEntity()
- {
- base.AddingEntity();
-
- if (Key == Guid.Empty)
- Key = Guid.NewGuid();
- }
-
public void SetMasterTemplate(ITemplate masterTemplate)
{
if (masterTemplate == null)
diff --git a/src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs b/src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs
index 5b2cad3415..2dfb996bb3 100644
--- a/src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs
+++ b/src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs
@@ -99,9 +99,7 @@ namespace Umbraco.Core.Persistence.Factories
ContentTypeNodeId = _contentTypeId,
SortOrder = propertyGroup.SortOrder,
Text = propertyGroup.Name,
- UniqueId = propertyGroup.Key == Guid.Empty
- ? Guid.NewGuid()
- : propertyGroup.Key
+ UniqueId = propertyGroup.Key
};
if (propertyGroup.HasIdentity)
@@ -124,9 +122,7 @@ namespace Umbraco.Core.Persistence.Factories
Name = propertyType.Name,
SortOrder = propertyType.SortOrder,
ValidationRegExp = propertyType.ValidationRegExp,
- UniqueId = propertyType.Key == Guid.Empty
- ? Guid.NewGuid()
- : propertyType.Key
+ UniqueId = propertyType.Key
};
if (tabId != default(int))
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
index 5ed0f62124..21748e6ffd 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
@@ -466,6 +466,7 @@ AND umbracoNode.id <> @id",
propType.DataTypeDefinitionId = dto.DataTypeId;
propType.Description = dto.Description;
propType.Id = dto.Id;
+ propType.Key = dto.UniqueId;
propType.Name = dto.Name;
propType.Mandatory = dto.Mandatory;
propType.SortOrder = dto.SortOrder;
diff --git a/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs
index f782b47ac1..fd693df182 100644
--- a/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs
@@ -180,12 +180,10 @@ namespace Umbraco.Core.Persistence.Repositories
Path = path,
SortOrder = 0,
Text = entity.Name,
- UserId = entity.CreatorId
+ UserId = entity.CreatorId,
+ UniqueId = entity.Key
};
- if (entity.Key != default(Guid))
- nodeDto.UniqueId = entity.Key;
-
// insert, get the id, update the path with the id
var id = Convert.ToInt32(Database.Insert(nodeDto));
nodeDto.Path = nodeDto.Path + "," + nodeDto.NodeId;
@@ -193,7 +191,6 @@ namespace Umbraco.Core.Persistence.Repositories
// refresh the entity
entity.Id = id;
- entity.Key = nodeDto.UniqueId;
entity.Path = nodeDto.Path;
entity.Level = nodeDto.Level;
entity.SortOrder = 0;
diff --git a/src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs b/src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs
index 916b6d3333..caf872a995 100644
--- a/src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs
+++ b/src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs
@@ -151,10 +151,10 @@ namespace Umbraco.Tests.Persistence.Querying
DatabaseContext.Database.Execute(new Sql(string.Format("SET IDENTITY_INSERT {0} OFF ", SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsContentType"))));
DatabaseContext.Database.Execute(new Sql(string.Format("SET IDENTITY_INSERT {0} ON ", SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsPropertyTypeGroup"))));
- DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77776, ContentTypeNodeId = 99999, Text = "Group1", SortOrder = 1 });
- DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77777, ContentTypeNodeId = 99999, Text = "Group2", SortOrder = 2 });
- DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77778, ContentTypeNodeId = 99999, Text = "Group3", SortOrder = 3 });
- DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77779, ContentTypeNodeId = 99999, Text = "Group4", SortOrder = 4 });
+ DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77776, UniqueId = 77776.ToGuid(), ContentTypeNodeId = 99999, Text = "Group1", SortOrder = 1 });
+ DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77777, UniqueId = 77777.ToGuid(), ContentTypeNodeId = 99999, Text = "Group2", SortOrder = 2 });
+ DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77778, UniqueId = 77778.ToGuid(), ContentTypeNodeId = 99999, Text = "Group3", SortOrder = 3 });
+ DatabaseContext.Database.Insert("cmsPropertyTypeGroup", "id", false, new PropertyTypeGroupDto { Id = 77779, UniqueId = 77779.ToGuid(), ContentTypeNodeId = 99999, Text = "Group4", SortOrder = 4 });
DatabaseContext.Database.Execute(new Sql(string.Format("SET IDENTITY_INSERT {0} OFF ", SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsPropertyTypeGroup"))));
DatabaseContext.Database.Execute(new Sql(string.Format("SET IDENTITY_INSERT {0} ON ", SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsPropertyType"))));
diff --git a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
index 81679c98f7..04f785c82d 100644
--- a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
+++ b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
@@ -78,7 +78,7 @@ namespace Umbraco.Tests.Services.Importing
public void PackagingService_Can_Import_Inherited_ContentTypes_And_Verify_PropertyTypes_UniqueIds()
{
// Arrange
- string strXml = ImportResources.InheritedDocTypes_Package;
+ var strXml = ImportResources.InheritedDocTypes_Package;
var xml = XElement.Parse(strXml);
var dataTypeElement = xml.Descendants("DataTypes").First();
var templateElement = xml.Descendants("Templates").First();