protected virtual void InstallLanguagePack <TLanguagePack>() where TLanguagePack : ILanguagePack, new() { var toInsert = new HashSet <LocalizableString>(); var languagePack = new TLanguagePack(); foreach (var localizedString in languagePack.LocalizedStrings) { toInsert.Add(new LocalizableString { Id = Guid.NewGuid(), CultureCode = languagePack.CultureCode, TextKey = localizedString.Key, TextValue = localizedString.Value }); } var localizableStringRepository = EngineContext.Current.Resolve <IRepository <LocalizableString> >(); localizableStringRepository.Insert(toInsert); var cacheManager = EngineContext.Current.Resolve <ICacheManager>(); cacheManager.RemoveByPattern(KoreConstants.CacheKeys.LocalizableStringsPatternFormat); }
protected virtual void UninstallLanguagePack <TLanguagePack>() where TLanguagePack : ILanguagePack, new() { var languagePack = new TLanguagePack(); var distinctKeys = languagePack .LocalizedStrings.Select(y => y.Key) .Distinct(); var localizableStringRepository = EngineContext.Current.Resolve <IRepository <LocalizableString> >(); var toDelete = localizableStringRepository.Find(x => distinctKeys.Contains(x.TextKey)); localizableStringRepository.Delete(toDelete); var cacheManager = EngineContext.Current.Resolve <ICacheManager>(); cacheManager.RemoveByPattern(KoreConstants.CacheKeys.LocalizableStringsPatternFormat); }