From 0bd233815e6f1aaee3f5add43f377a536437d290 Mon Sep 17 00:00:00 2001 From: Stephan Date: Thu, 22 Jun 2017 10:04:48 +0200 Subject: [PATCH] deploy-348 - add support for languages --- src/Umbraco.Core/Constants-ObjectTypes.cs | 10 ++++++++++ src/Umbraco.Core/Models/UmbracoObjectTypes.cs | 9 ++++++++- src/Umbraco.Core/UdiEntityType.cs | 7 ++++++- src/Umbraco.Core/UdiGetterExtensions.cs | 18 ++++++++++++++++-- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Constants-ObjectTypes.cs b/src/Umbraco.Core/Constants-ObjectTypes.cs index adc154174a..4a79437c61 100644 --- a/src/Umbraco.Core/Constants-ObjectTypes.cs +++ b/src/Umbraco.Core/Constants-ObjectTypes.cs @@ -212,6 +212,16 @@ namespace Umbraco.Core /// Guid for a Forms DataSource. /// public static readonly Guid FormsDataSourceGuid = new Guid(FormsDataSource); + + /// + /// Guid for a Language. + /// + public const string Language = "6B05D05B-EC78-49BE-A4E4-79E274F07A77"; + + /// + /// Guid for a Forms DataSource. + /// + public static readonly Guid LanguageGuid = new Guid(Language); } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/UmbracoObjectTypes.cs b/src/Umbraco.Core/Models/UmbracoObjectTypes.cs index 0df7a21e57..d0136a10a4 100644 --- a/src/Umbraco.Core/Models/UmbracoObjectTypes.cs +++ b/src/Umbraco.Core/Models/UmbracoObjectTypes.cs @@ -178,6 +178,13 @@ namespace Umbraco.Core.Models /// [UmbracoObjectType(Constants.ObjectTypes.FormsDataSource)] [FriendlyName("DataSource")] - FormsDataSource + FormsDataSource, + + /// + /// Language + /// + [UmbracoObjectType(Constants.ObjectTypes.Language)] + [FriendlyName("Language")] + Language } } \ No newline at end of file diff --git a/src/Umbraco.Core/UdiEntityType.cs b/src/Umbraco.Core/UdiEntityType.cs index f6b9b1e3b0..0119e83b24 100644 --- a/src/Umbraco.Core/UdiEntityType.cs +++ b/src/Umbraco.Core/UdiEntityType.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using Umbraco.Core.Models; namespace Umbraco.Core @@ -84,6 +83,8 @@ namespace Umbraco.Core public const string PartialViewMacro = "partial-view-macro"; [UdiType(UdiType.StringUdi)] public const string Xslt = "xslt"; + [UdiType(UdiType.StringUdi)] + public const string Language = "language"; public static string FromUmbracoObjectType(UmbracoObjectTypes umbracoObjectType) { @@ -123,6 +124,8 @@ namespace Umbraco.Core return FormsPreValue; case UmbracoObjectTypes.FormsDataSource: return FormsDataSource; + case UmbracoObjectTypes.Language: + return Language; } throw new NotSupportedException(string.Format("UmbracoObjectType \"{0}\" does not have a matching EntityType.", umbracoObjectType)); } @@ -165,6 +168,8 @@ namespace Umbraco.Core return UmbracoObjectTypes.FormsPreValue; case FormsDataSource: return UmbracoObjectTypes.FormsDataSource; + case Language: + return UmbracoObjectTypes.Language; } throw new NotSupportedException( string.Format("EntityType \"{0}\" does not have a matching UmbracoObjectType.", entityType)); diff --git a/src/Umbraco.Core/UdiGetterExtensions.cs b/src/Umbraco.Core/UdiGetterExtensions.cs index 3d829c8a1a..d663acba9d 100644 --- a/src/Umbraco.Core/UdiGetterExtensions.cs +++ b/src/Umbraco.Core/UdiGetterExtensions.cs @@ -97,7 +97,7 @@ namespace Umbraco.Core /// /// The entity. /// The entity identifier of the entity. - public static GuidUdi GetUdi(this Umbraco.Core.Models.EntityContainer entity) + public static GuidUdi GetUdi(this EntityContainer entity) { if (entity == null) throw new ArgumentNullException("entity"); @@ -246,6 +246,17 @@ namespace Umbraco.Core return new GuidUdi(Constants.UdiEntityType.RelationType, entity.Key).EnsureClosed(); } + /// + /// Gets the entity identifier of the entity. + /// + /// The entity. + /// The entity identifier of the entity. + public static StringUdi GetUdi(this ILanguage entity) + { + if (entity == null) throw new ArgumentNullException("entity"); + return new StringUdi(Constants.UdiEntityType.Language, entity.IsoCode).EnsureClosed(); + } + /// /// Gets the entity identifier of the entity. /// @@ -279,7 +290,7 @@ namespace Umbraco.Core var dataTypeComposition = entity as IDataTypeDefinition; if (dataTypeComposition != null) return dataTypeComposition.GetUdi(); - var container = entity as Umbraco.Core.Models.EntityContainer; + var container = entity as EntityContainer; if (container != null) return container.GetUdi(); var media = entity as IMedia; @@ -315,6 +326,9 @@ namespace Umbraco.Core var relationType = entity as IRelationType; if (relationType != null) return relationType.GetUdi(); + var language = entity as ILanguage; + if (language != null) return language.GetUdi(); + throw new NotSupportedException(string.Format("Entity type {0} is not supported.", entity.GetType().FullName)); } }