diff --git a/src/Umbraco.Core/Deploy/IUniqueIdentifyingServiceConnector.cs b/src/Umbraco.Core/Deploy/IUniqueIdentifyingServiceConnector.cs new file mode 100644 index 0000000000..a657ba78b6 --- /dev/null +++ b/src/Umbraco.Core/Deploy/IUniqueIdentifyingServiceConnector.cs @@ -0,0 +1,25 @@ +namespace Umbraco.Core.Deploy +{ + /// + /// Provides a method to retrieve an artifact's unique identifier. + /// + /// + /// Artifacts are uniquely identified by their , however they represent + /// elements in Umbraco that may be uniquely identified by another value. For example, + /// a content type is uniquely identified by its alias. If someone creates a new content + /// type, and tries to deploy it to a remote environment where a content type with the + /// same alias already exists, both content types end up having different + /// but the same alias. By default, Deploy would fail and throw when trying to save the + /// new content type (duplicate alias). However, if the connector also implements this + /// interface, the situation can be detected beforehand and reported in a nicer way. + /// + public interface IUniqueIdentifyingServiceConnector + { + /// + /// Gets the unique identifier of the specified artifact. + /// + /// The artifact. + /// The unique identifier. + string GetUniqueIdentifier(IArtifact artifact); + } +} diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 07fcb58137..7817b24ff1 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -335,6 +335,7 @@ +