示例#1
0
        private async Task DownloadPackage(Language language, Package package, TranslationConfigs translationService, PageTranslations pageTranslationService, bool update)
        {
            IList<Page> pages = await translationService.GetTranslationConfig(language.code, package.code, true);

            foreach (Page page in pages)
            {
                await pageTranslationService.GetPageTranslationsFromService(language.code, package.code, page.filename, update);
            }

            ChangeVersion(language.code, languageListFileName, package);
        }
示例#2
0
        public async Task DeleteLanguage(string language)
        {
            Language downloadLanguage = new Language();

            TranslationConfigs translationService = new TranslationConfigs();
            PageTranslations pageTranslationService = new PageTranslations();

            downloadLanguage = await GetLanguage(language);

            foreach (Package package in downloadLanguage.packages)
            {
                IList<Page> pages = await translationService.GetTranslationConfig(downloadLanguage.code, package.code);

                foreach (Page page in pages)
                {
                    pageTranslationService.DeletePageTranslation(downloadLanguage.code, package.code, page.filename);
                }
            }
         
            if (ApplicationData.Current.RoamingSettings.Values["primary"].ToString() == language)
            {
                string listLanguage = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;

                if (!await IsLanguageDownloaded(listLanguage))
                {
                    await DownloadLanguage(listLanguage);
                    ChangeLanguageDownloadedFlag(listLanguage, languageListFileName, true);
                    ChangeLanguageUpToDateFlag(listLanguage, languageListFileName, true);
                }

                ApplicationData.Current.RoamingSettings.Values["primary"] = listLanguage;
            }

            if (ApplicationData.Current.RoamingSettings.Values["current"].ToString() == language)
            {
                ApplicationData.Current.RoamingSettings.Values["current"] = ApplicationData.Current.RoamingSettings.Values["primary"];
            }

            if (ApplicationData.Current.RoamingSettings.Values["parallel"].ToString() == language)
            {
                ApplicationData.Current.RoamingSettings.Values["parallel"] = ApplicationData.Current.RoamingSettings.Values["primary"];
            }
            
            ChangeLanguageDownloadedFlag(language, languageListFileName, false);
        }
示例#3
0
        public async Task DownloadLanguage(string language, Package package, bool refresh = false)
        {
            Language downloadLanguage = new Language();

            TranslationConfigs translationService = new TranslationConfigs();
            PageTranslations pageTranslationService = new PageTranslations();

            downloadLanguage = await GetLanguage(language);

            IList<Page> pages = await translationService.GetTranslationConfig(downloadLanguage.code, package.code, true);

            foreach (Page page in pages)
            {
                await pageTranslationService.GetPageTranslationsFromService(downloadLanguage.code, package.code, page.filename, refresh);
            }

            ChangeVersion(language, languageListFileName, package);
            ChangeLanguageDownloadedFlag(language, languageListFileName, true);
            ChangeLanguageUpToDateFlag(language, languageListFileName, true);
        }