internal static IIndexCriteria ToIndexCriteria(this IndexSet set, IEnumerable<string> indexFieldNames, IEnumerable<StaticField> indexFieldPolicies) { if (set.IndexAttributeFields.Count == 0) { foreach (var fn in indexFieldNames) { var field = new IndexField() {Name = fn}; var policy = indexFieldPolicies.FirstOrDefault(x => x.Name == fn); if (policy != null) { field.Type = policy.Type; field.EnableSorting = policy.EnableSorting; } set.IndexAttributeFields.Add(field); } } return new IndexCriteria( set.IndexAttributeFields.Cast<IIndexField>().ToArray(), set.IndexUserFields.Cast<IIndexField>().ToArray(), set.IncludeNodeTypes.ToList().Select(x => x.Name).ToArray(), set.ExcludeNodeTypes.ToList().Select(x => x.Name).ToArray(), set.IndexParentId ); }
public bool Equals(IndexField other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(string.Equals(Name, other.Name)); }
internal static IIndexCriteria ToIndexCriteria(this IndexSet set, IDataService svc, IEnumerable<StaticField> indexFieldPolicies) { if (set.IndexUserFields.Count == 0) { lock (Locker) { //we need to add all user fields to the collection if it is empty (this is the default if none are specified) var userFields = svc.ContentService.GetAllUserPropertyNames(); foreach (var u in userFields) { var field = new IndexField() {Name = u}; var policy = indexFieldPolicies.FirstOrDefault(x => x.Name == u); if (policy != null) { field.Type = policy.Type; field.EnableSorting = policy.EnableSorting; } set.IndexUserFields.Add(field); } } } if (set.IndexAttributeFields.Count == 0) { lock (Locker) { //we need to add all system fields to the collection if it is empty (this is the default if none are specified) var sysFields = svc.ContentService.GetAllSystemPropertyNames(); foreach (var s in sysFields) { var field = new IndexField() { Name = s }; var policy = indexFieldPolicies.FirstOrDefault(x => x.Name == s); if (policy != null) { field.Type = policy.Type; field.EnableSorting = policy.EnableSorting; } set.IndexAttributeFields.Add(field); } } } return new IndexCriteria( set.IndexAttributeFields.Cast<IIndexField>().ToArray(), set.IndexUserFields.Cast<IIndexField>().ToArray(), set.IncludeNodeTypes.ToList().Select(x => x.Name).ToArray(), set.ExcludeNodeTypes.ToList().Select(x => x.Name).ToArray(), set.IndexParentId); }
/// <summary> /// Adds an index field to the collection /// </summary> /// <param name="field"></param> public void Add(IndexField field) { BaseAdd(field, true); }
protected override object GetElementKey(ConfigurationElement element) { IndexField field = (IndexField)element; return(field.Name); }