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); }