Exemplo n.º 1
0
 private async Task GetLanguageTexts(GetLanguageTextsInput filter)
 {
     await WebRequest.Execute(() => appService.GetLanguageTexts(filter),
                              async result =>
     {
         dataPager.SetList(result);
         await Task.CompletedTask;
     });
 }
Exemplo n.º 2
0
        public LanguageTextViewModel(ILanguageAppService appService, IApplicationContext context)
        {
            sources         = new ObservableCollection <string>();
            baseLanguages   = new ObservableCollection <LanguageStruct>();
            targetLanguages = new ObservableCollection <LanguageStruct>();

            input = new GetLanguageTextsInput()
            {
                FilterText     = "",
                MaxResultCount = AppConsts.DefaultPageSize,
                SkipCount      = 0
            };
            this.appService = appService;
            this.context    = context;
            EditCommand     = new DelegateCommand <LanguageTextListDto>(Edit);
            SearchCommand   = new DelegateCommand(Search);

            dataPager.OnPageIndexChangedEventhandler += LanguageOnPageIndexChangedEventhandler;
        }
        public async Task <PagedResultDto <LanguageTextListDto> > GetLanguageTexts(GetLanguageTextsInput input)
        {
            if (input.BaseLanguageName.IsNullOrEmpty())
            {
                var defaultLanguage = await _languageManager.GetDefaultLanguageOrNullAsync(AbpSession.TenantId);

                if (defaultLanguage == null)
                {
                    defaultLanguage = (await _languageManager.GetLanguagesAsync(AbpSession.TenantId)).FirstOrDefault();
                    if (defaultLanguage == null)
                    {
                        throw new Exception("No language found in the application!");
                    }
                }

                input.BaseLanguageName = defaultLanguage.Name;
            }

            var source        = LocalizationManager.GetSource(input.SourceName);
            var baseCulture   = CultureInfo.GetCultureInfo(input.BaseLanguageName);
            var targetCulture = CultureInfo.GetCultureInfo(input.TargetLanguageName);

            var languageTexts = source
                                .GetAllStrings()
                                .Select(localizedString => new LanguageTextListDto
            {
                Key       = localizedString.Name,
                BaseValue = _languageTextManager.GetStringOrNull(AbpSession.TenantId, source.Name, baseCulture,
                                                                 localizedString.Name),
                TargetValue = _languageTextManager.GetStringOrNull(AbpSession.TenantId, source.Name, targetCulture,
                                                                   localizedString.Name, false)
            })
                                .AsQueryable();

            //Filters
            if (input.TargetValueFilter == "EMPTY")
            {
                languageTexts = languageTexts.Where(s => s.TargetValue.IsNullOrEmpty());
            }

            if (!input.FilterText.IsNullOrEmpty())
            {
                languageTexts = languageTexts.Where(
                    l => l.Key != null &&
                    l.Key.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0 ||
                    l.BaseValue != null &&
                    l.BaseValue.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0 ||
                    l.TargetValue != null &&
                    l.TargetValue.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0
                    );
            }

            var totalCount = languageTexts.Count();

            //Ordering
            if (!input.Sorting.IsNullOrEmpty())
            {
                languageTexts = languageTexts.OrderBy(input.Sorting);
            }

            //Paging
            if (input.SkipCount > 0)
            {
                languageTexts = languageTexts.Skip(input.SkipCount);
            }

            if (input.MaxResultCount > 0)
            {
                languageTexts = languageTexts.Take(input.MaxResultCount);
            }

            return(new PagedResultDto <LanguageTextListDto>(
                       totalCount,
                       languageTexts.ToList()
                       ));
        }
Exemplo n.º 4
0
        public async Task <PagedResultDto <LanguageTextListDto> > GetLanguageTexts(GetLanguageTextsInput input)
        {
            return(await cacheManager.GetCache("Language").Get($"{input.BaseLanguageName}-{input.SourceName}-{input.TargetLanguageName}",
                                                               async() =>
            {
                //Logger.Info("Languages GetLanguageTexts");

                /* Note: This method is used by SPA without paging, MPA with paging.
                 * So, it can both usable with paging or not */

                //Normalize base language name
                if (input.BaseLanguageName.IsNullOrEmpty())
                {
                    var defaultLanguage = await applicationLanguageManager.GetDefaultLanguageOrNullAsync(AbpSession.TenantId);
                    if (defaultLanguage == null)
                    {
                        defaultLanguage = (await applicationLanguageManager.GetLanguagesAsync(AbpSession.TenantId)).FirstOrDefault();
                        if (defaultLanguage == null)
                        {
                            throw new Exception("No language found in the application!");
                        }
                    }

                    input.BaseLanguageName = defaultLanguage.Name;
                }

                var source = LocalizationManager.GetSource(input.SourceName);
                var baseCulture = CultureInfo.GetCultureInfo(input.BaseLanguageName);
                var targetCulture = CultureInfo.GetCultureInfo(input.TargetLanguageName);

                var languageTexts = source
                                    .GetAllStrings()
                                    .Select(localizedString => new LanguageTextListDto
                {
                    Key = localizedString.Name,
                    BaseValue = applicationLanguageTextManager.GetStringOrNull(AbpSession.TenantId, source.Name, baseCulture, localizedString.Name),
                    TargetValue = applicationLanguageTextManager.GetStringOrNull(AbpSession.TenantId, source.Name, targetCulture, localizedString.Name, false)
                })
                                    .AsQueryable();

                //Filters
                if (input.TargetValueFilter == "EMPTY")
                {
                    languageTexts = languageTexts.Where(s => s.TargetValue.IsNullOrEmpty());
                }

                if (!input.FilterText.IsNullOrEmpty())
                {
                    languageTexts = languageTexts.Where(
                        l => (l.Key != null && l.Key.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0) ||
                        (l.BaseValue != null && l.BaseValue.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0) ||
                        (l.TargetValue != null && l.TargetValue.IndexOf(input.FilterText, StringComparison.CurrentCultureIgnoreCase) >= 0)
                        );
                }

                var totalCount = languageTexts.Count();

                //Ordering
                if (!input.Sorting.IsNullOrEmpty())
                {
                    languageTexts = languageTexts.OrderBy(input.Sorting);
                }

                //Paging
                if (input.SkipCount > 0)
                {
                    languageTexts = languageTexts.Skip(input.SkipCount);
                }

                if (input.MaxResultCount > 0)
                {
                    languageTexts = languageTexts.Take(input.MaxResultCount);
                }

                return new PagedResultDto <LanguageTextListDto>(
                    totalCount,
                    languageTexts.ToList()
                    );
            }));
        }