diff --git a/src/Umbraco.Core/Services/ILocalizationService.cs b/src/Umbraco.Core/Services/ILocalizationService.cs
index 82a9319884..5c3bc965ec 100644
--- a/src/Umbraco.Core/Services/ILocalizationService.cs
+++ b/src/Umbraco.Core/Services/ILocalizationService.cs
@@ -81,9 +81,16 @@ namespace Umbraco.Core.Services
///
/// Gets a by its culture code
///
- /// Culture Code
+ /// Culture Code - also refered to as the Friendly name
///
- ILanguage GetLanguageByCultureCode(string culture);
+ ILanguage GetLanguageByCultureCode(string cultureName);
+
+ ///
+ /// Gets a by its iso code
+ ///
+ /// Iso Code of the language (ie. en-US)
+ ///
+ ILanguage GetLanguageByIsoCode(string isoCode);
///
/// Gets all available languages
diff --git a/src/Umbraco.Core/Services/LocalizationService.cs b/src/Umbraco.Core/Services/LocalizationService.cs
index 47284eb1ad..b7c0cb3b55 100644
--- a/src/Umbraco.Core/Services/LocalizationService.cs
+++ b/src/Umbraco.Core/Services/LocalizationService.cs
@@ -146,10 +146,10 @@ namespace Umbraco.Core.Services
{
repository.AddOrUpdate(dictionaryItem);
uow.Commit();
-
- SavedDictionaryItem.RaiseEvent(new SaveEventArgs(dictionaryItem, false), this);
}
+ SavedDictionaryItem.RaiseEvent(new SaveEventArgs(dictionaryItem, false), this);
+
Audit.Add(AuditTypes.Save, "Save DictionaryItem performed by user", userId, dictionaryItem.Id);
}
@@ -170,10 +170,10 @@ namespace Umbraco.Core.Services
//NOTE: The recursive delete is done in the repository
repository.Delete(dictionaryItem);
uow.Commit();
-
- DeletedDictionaryItem.RaiseEvent(new DeleteEventArgs(dictionaryItem, false), this);
}
+ DeletedDictionaryItem.RaiseEvent(new DeleteEventArgs(dictionaryItem, false), this);
+
Audit.Add(AuditTypes.Delete, "Delete DictionaryItem performed by user", userId, dictionaryItem.Id);
}
@@ -193,13 +193,29 @@ namespace Umbraco.Core.Services
///
/// Gets a by its culture code
///
- /// Culture Code
+ /// Culture Name - also refered to as the Friendly name
///
- public ILanguage GetLanguageByCultureCode(string culture)
+ public ILanguage GetLanguageByCultureCode(string cultureName)
{
using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
{
- var query = Query.Builder.Where(x => x.CultureName == culture);
+ var query = Query.Builder.Where(x => x.CultureName == cultureName);
+ var items = repository.GetByQuery(query);
+
+ return items.FirstOrDefault();
+ }
+ }
+
+ ///
+ /// Gets a by its iso code
+ ///
+ /// Iso Code of the language (ie. en-US)
+ ///
+ public ILanguage GetLanguageByIsoCode(string isoCode)
+ {
+ using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
+ {
+ var query = Query.Builder.Where(x => x.IsoCode == isoCode);
var items = repository.GetByQuery(query);
return items.FirstOrDefault();
@@ -234,10 +250,10 @@ namespace Umbraco.Core.Services
{
repository.AddOrUpdate(language);
uow.Commit();
-
- SavedLanguage.RaiseEvent(new SaveEventArgs(language, false), this);
}
+ SavedLanguage.RaiseEvent(new SaveEventArgs(language, false), this);
+
Audit.Add(AuditTypes.Save, "Save Language performed by user", userId, language.Id);
}
@@ -257,10 +273,10 @@ namespace Umbraco.Core.Services
//NOTE: There isn't any constraints in the db, so possible references aren't deleted
repository.Delete(language);
uow.Commit();
-
- DeletedLanguage.RaiseEvent(new DeleteEventArgs(language, false), this);
}
+ DeletedLanguage.RaiseEvent(new DeleteEventArgs(language, false), this);
+
Audit.Add(AuditTypes.Delete, "Delete Language performed by user", userId, language.Id);
}