/// <summary> /// Prepare paged locale resource list model /// </summary> /// <param name="searchModel">Locale resource search model</param> /// <param name="language">Language</param> /// <returns>Locale resource list model</returns> public virtual LocaleResourceListModel PrepareLocaleResourceListModel(LocaleResourceSearchModel searchModel, Language language) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (language == null) { throw new ArgumentNullException(nameof(language)); } //get locale resources var localeResources = _localizationService.GetAllResourceValues(language.Id, loadPublicLocales: null) .OrderBy(localeResource => localeResource.Key).AsQueryable(); //filter locale resources //TODO: move filter to language service if (!string.IsNullOrEmpty(searchModel.SearchResourceName)) { localeResources = localeResources.Where(l => l.Key.ToLowerInvariant().Contains(searchModel.SearchResourceName.ToLowerInvariant())); } if (!string.IsNullOrEmpty(searchModel.SearchResourceValue)) { localeResources = localeResources.Where(l => l.Value.Value.ToLowerInvariant().Contains(searchModel.SearchResourceValue.ToLowerInvariant())); } var pagedLocaleResources = new PagedList <KeyValuePair <string, KeyValuePair <int, string> > >(localeResources, searchModel.Page - 1, searchModel.PageSize); //prepare list model var model = new LocaleResourceListModel().PrepareToGrid(searchModel, pagedLocaleResources, () => { //fill in model values from the entity return(pagedLocaleResources.Select(localeResource => new LocaleResourceModel { LanguageId = language.Id, Id = localeResource.Value.Key, ResourceName = localeResource.Key, ResourceValue = localeResource.Value.Value })); }); return(model); }
/// <summary> /// Prepare paged locale resource list model /// </summary> /// <param name="searchModel">Locale resource search model</param> /// <param name="language">Language</param> /// <returns>Locale resource list model</returns> public virtual LocaleResourceListModel PrepareLocaleResourceListModel(LocaleResourceSearchModel searchModel, Language language) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (language == null) { throw new ArgumentNullException(nameof(language)); } //get locale resources var localeResources = _localizationService.GetAllResourceValues(language.Id, loadPublicLocales: null) .OrderBy(localeResource => localeResource.Key).AsQueryable(); //filter locale resources //TODO: move filter to language service if (!string.IsNullOrEmpty(searchModel.SearchResourceName)) { localeResources = localeResources.Where(l => l.Key.ToLowerInvariant().Contains(searchModel.SearchResourceName.ToLowerInvariant())); } if (!string.IsNullOrEmpty(searchModel.SearchResourceValue)) { localeResources = localeResources.Where(l => l.Value.Value.ToLowerInvariant().Contains(searchModel.SearchResourceValue.ToLowerInvariant())); } //prepare list model var model = new LocaleResourceListModel { //fill in model values from the entity Data = localeResources.PaginationByRequestModel(searchModel).Select(localeResource => new LocaleResourceModel { LanguageId = language.Id, Id = localeResource.Value.Key, ResourceName = localeResource.Key, ResourceValue = localeResource.Value.Value }), Total = localeResources.Count() }; return(model); }