private List <FilteringModel.Item> GetAllFields() { return(_fieldDefinitionService.GetAll <ProductArea>() .Where(x => !x.Hidden && x.CanBeGridFilter) .Select(y => y.MakeWritableClone()) .ToList() .ChangeDuplicateFilterItemTitles() .Select(x => new FilteringModel.Item { FieldId = x.Id, Title = x.Localizations.CurrentCulture.Name ?? x.Id, GroupName = (x.SystemDefined ? "pim.template.fieldgroup.systemdefined" : "pim.template.fieldgroup.userdefined").AsAngularResourceString() }) .Concat(new[] { new FilteringModel.Item { FieldId = "#Price", Title = "accelerator.filterfield.filterprice".AsAngularResourceString(), GroupName = "accelerator.filterfield.predefined".AsAngularResourceString() }, new FilteringModel.Item { FieldId = "#News", Title = "accelerator.filterfield.filternews".AsAngularResourceString(), GroupName = "accelerator.filterfield.predefined".AsAngularResourceString() } }) .ToList()); }
private List <SearchIndexingModel.Template> GetTemplates <TTemplate, TArea>(IEnumerable <FieldTemplate> templates) where TTemplate : FieldTemplate where TArea : IArea { var templateList = new List <SearchIndexingModel.Template>(); foreach (var item in templates.OfType <TTemplate>()) { //Take all fields for the TArea var templateFields = _fieldDefinitionService.GetAll <TArea>().Where(z => IsValidType(z.FieldType)).Select(y => y.MakeWritableClone()).ToList() .ChangeDuplicateFilterItemTitles() .Select(z => new SearchIndexingModel.FieldGroup { Title = z.Localizations.CurrentUICulture.Name ?? z.Id, FieldId = z.Id.ToLowerInvariant() }) .OrderBy(z => z.Title) .ToList(); var selectedFields = _templateSettingService.GetTemplateIndexingFields <TArea>(item.Id) ?? new List <string>(); var template = new SearchIndexingModel.Template { Title = item.Localizations.CurrentUICulture.Name ?? item.Id, TemplateId = item.Id, AreaType = typeof(TArea), SelectedFields = templateFields.Where(x => selectedFields.Contains(x.FieldId)).Select(z => z.FieldId).ToList(), Fields = templateFields }; templateList.Add(template); } return(templateList.OrderBy(x => x.Title).ToList()); }
private List <SelectListItem> CreateTextOptionSelectListItemList() { var textOptions = _fieldDefinitionService.GetAll <ProductArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList(); textOptions.AddRange(_fieldDefinitionService.GetAll <CustomerArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); textOptions.AddRange(_fieldDefinitionService.GetAll <SalesArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); textOptions.AddRange(_fieldDefinitionService.GetAll <WebsiteArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); textOptions.AddRange(_fieldDefinitionService.GetAll <GlobalizationArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); textOptions.AddRange(_fieldDefinitionService.GetAll <MediaArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); textOptions.AddRange(_fieldDefinitionService.GetAll <BlockArea>().Where(x => x.FieldType == SystemFieldTypeConstants.TextOption).ToList()); return(textOptions.Select(textOption => new SelectListItem { Text = $"{textOption.AreaType.Name}: {(string.IsNullOrWhiteSpace(textOption.Localizations.CurrentUICulture.Name) ? textOption.Id : textOption.Localizations.CurrentUICulture.Name)}", Value = $"{textOption.AreaType.Name};{textOption.Id}" }).ToList()); }