Пример #1
0
        public void AddDictionaryItem(string resourceName, string defaultValue,  ILanguage language)
        {
            var arr = resourceName.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
               if (arr.Length == 0)
               return;
               if (arr.Length == 1)
               {
               SetDictionaryValue(resourceName, defaultValue,  language);
               return;
               }

               var parentName = string.Join(".", arr.Take(arr.Length - 1));
               if (!_localizationService.DictionaryItemExists(parentName))
               {
               AddDictionaryItem(parentName, "", language);
               }

               var parentDic = _localizationService.GetDictionaryItemByKey(parentName);
               var dicItem = new DictionaryItem(resourceName);
               dicItem.ParentId = parentDic.Key;
               dicItem.Translations = new List<IDictionaryTranslation>
                {
                    new DictionaryTranslation(language, defaultValue)

                };
               _localizationService.Save(dicItem);
        }
        public void CreateTestData()
        {
            var language = ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US");

            var languageDK = new Language("da-DK") { CultureName = "da-DK" };
            ServiceContext.LocalizationService.Save(languageDK);//Id 2

            var readMore = new DictionaryItem("Read More");
            var translations = new List<IDictionaryTranslation>
                                   {
                                       new DictionaryTranslation(language, "Read More"),
                                       new DictionaryTranslation(languageDK, "Læs mere")
                                   };
            readMore.Translations = translations;
            ServiceContext.LocalizationService.Save(readMore);//Id 1

            var article = new DictionaryItem("Article");
            var translations2 = new List<IDictionaryTranslation>
                                   {
                                       new DictionaryTranslation(language, "Article"),
                                       new DictionaryTranslation(languageDK, "Artikel")
                                   };
            article.Translations = translations2;
            ServiceContext.LocalizationService.Save(article);//Id 2
        }
        public void Can_Perform_Add_On_DictionaryRepository()
        {
            // Arrange
            var provider = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            LanguageRepository languageRepository;
            using (var repository = CreateRepository(unitOfWork, out languageRepository))
            {

                var language = languageRepository.Get(1);

                var read = new DictionaryItem("Read");
                var translations = new List<IDictionaryTranslation>
                    {
                        new DictionaryTranslation(language, "Read")
                    };
                read.Translations = translations;

                // Act
                repository.AddOrUpdate(read);
                unitOfWork.Commit();

                var exists = repository.Exists(read.Id);

                // Assert
                Assert.That(read.HasIdentity, Is.True);
                Assert.That(exists, Is.True);
            }
        }
 private void RefreshDictionaryCache(Guid publishId )
 {
     //currently the hashtable that contains the cache of dictionary items in memory
     // only gets cleared when new items are added or removed
     // there isn't the function to clear the cache
     //sadly this is coming in 7.3
     //ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheObjectTypes<IDictionaryItem>();
       // so it would be a horrible hack here to temporarily create / update an existing DictionaryItem called "TempRefreshCache"...
     // .... apologies
     var ls = ApplicationContext.Current.Services.LocalizationService;
     if (!ls.DictionaryItemExists("TempRefreshCache"))
     {
         DictionaryItem newItem = new DictionaryItem("TempRefreshCache");
         foreach (var translation in newItem.Translations)
         {
             translation.Value = publishId.ToString();
         }
         ls.Save(newItem);
     }
     else
     {
         var dicItem = ls.GetDictionaryItemByKey("TempRefreshCache");
            foreach (var translation in dicItem.Translations)
         {
             translation.Value = publishId.ToString();
         }
       ls.Save(dicItem);
     }
 }
Пример #5
0
        private void AddDictionaryItem(string resourceName, string[] defaultValues, ILanguage[] languages)
        {
            var arr = resourceName.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
               if (arr.Length == 0)
               return;
               if (arr.Length == 1)
               {
               SetDictionaryValue(resourceName, defaultValues, languages);
               return;
               }
               var parentName = string.Join(".", arr.Take(arr.Length - 1));
               if (!_localizationService.DictionaryItemExists(parentName))
               {
               AddDictionaryItem(parentName, defaultValues.Select(x=> "").ToArray(), languages);
               }
               var parentDic = _localizationService.GetDictionaryItemByKey(parentName);
               var dicItem = new DictionaryItem(resourceName);
               dicItem.ParentId = parentDic.Key;
               var translations = new List<IDictionaryTranslation>();

               for (int i = 0; i < Math.Min(defaultValues.Length, languages.Length); i++)
               {
               translations.Add(new DictionaryTranslation(languages[i], defaultValues[i]));
               }
               dicItem.Translations = translations;
               _localizationService.Save(dicItem);
        }
Пример #6
0
        public void SetDictionaryValue(string resourceName, string[] defaultValues,
           ILanguage[] languages)
        {
            var dicItem = new DictionaryItem(resourceName);
               var translations = new List<IDictionaryTranslation>();

               for (int i = 0; i < Math.Min(defaultValues.Length,languages.Length); i++)
               {
              translations.Add(new DictionaryTranslation(languages[i],defaultValues[i]));
               }
               dicItem.Translations = translations;

               _localizationService.Save(dicItem);
        }
Пример #7
0
        public void SetDictionaryValue(string resourceName, string defaultValue, 
           ILanguage language)
        {
            var dicItem = new DictionaryItem(resourceName);

               dicItem.Translations = new List<IDictionaryTranslation>
            {
                new DictionaryTranslation(language, defaultValue)
            };

               _localizationService.Save(dicItem);
        }