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();
}