Aqueduct.SitecoreLib.Search.Crawlers.AdvancedDatabaseCrawler.FilteredFields C# (CSharp) Method

FilteredFields() protected method

protected FilteredFields ( System.Item item ) : List
item System.Item
return List
        protected virtual List<SCField> FilteredFields(Item item)
        {
            var filteredFields = new List<SCField>();
            if (IndexAllFields)
            {
                item.Fields.ReadAll();
                filteredFields.AddRange(item.Fields);
            }
            else if (HasFieldIncludes)
            {
                foreach (var includeFieldId in from p in FieldFilter where p.Value select p)
                {
                    filteredFields.Add(item.Fields[ID.Parse(includeFieldId)]);
                }
            }
            if (HasFieldExcludes)
            {
                foreach (SCField field in item.Fields)
                {
                    var fieldKey = field.ID.ToString();
                    if (!(!FieldFilter.ContainsKey(fieldKey) ? true : FieldFilter[fieldKey]))
                    {
                        filteredFields.Remove(field);
                    }
                }
            }

            return filteredFields.Where(f => !String.IsNullOrEmpty(f.Key)).ToList();
        }