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());
        }
Exemplo n.º 3
0
        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());
        }