private bool FilterMatch(Service s, FilterCondition f) { switch (f.filterAttributeType) { case FilterAttributeType.Name: return(FilterMatchString(f.filterRelationType, s.Name, f.Value)); case FilterAttributeType.Provider: return(FilterMatchString(f.filterRelationType, s.Provider, f.Value)); case FilterAttributeType.NetworkName: return(FilterMatchString(f.filterRelationType, s.NetworkName, f.Value)); case FilterAttributeType.CASystemID: return(FilterMatchIntList(f.filterRelationType, s.CaSystemIdList, f.Value)); case FilterAttributeType.Features: return /*FilterMatchFeatures(s,f)*/ (FilterMatchStringList(s.FeatureList, f)); case FilterAttributeType.Position: return(FilterMatchString(f.filterRelationType, s.Position, f.Value)); case FilterAttributeType.Lcn: return(FilterMatchInt(f.filterRelationType, s.Lcn, f.Value)); case FilterAttributeType.FreeCAMode: return(FilterMatchInt(f.filterRelationType, s.FreeCaMode ? 1 : 0, f.Value)); case FilterAttributeType.Type: return(FilterMatchInt(f.filterRelationType, s.Type, f.Value)); case FilterAttributeType.Pcr: return(FilterMatchInt(f.filterRelationType, s.Pcr, f.Value)); case FilterAttributeType.Pmt: return(FilterMatchInt(f.filterRelationType, s.Pmt, f.Value)); case FilterAttributeType.Sid: return(FilterMatchInt(f.filterRelationType, s.Sid, f.Value)); case FilterAttributeType.Tsid: return(FilterMatchInt(f.filterRelationType, s.Tsid, f.Value)); case FilterAttributeType.Nid: return(FilterMatchInt(f.filterRelationType, s.Nid, f.Value)); case FilterAttributeType.Onid: return(FilterMatchInt(f.filterRelationType, s.Onid, f.Value)); case FilterAttributeType.BouquetList: case FilterAttributeType.Audio: return(FilterMatchIntList(f.filterRelationType, s.AudioPidList, f.Value)); case FilterAttributeType.Video: return(FilterMatchIntList(f.filterRelationType, s.VideoPidList, f.Value)); case FilterAttributeType.Data: return(FilterMatchIntList(f.filterRelationType, s.DataPidList, f.Value)); case FilterAttributeType.AudioLanguage: return(FilterMatchStringList(s.AudioLanguageList, f)); case FilterAttributeType.DataLanguage: return(FilterMatchStringList(s.DataLanguageList, f)); case FilterAttributeType.AudioType: return(FilterMatchStringList(s.AudioTypeList, f)); case FilterAttributeType.VideoType: return(FilterMatchStringList(s.VideoTypeList, f)); case FilterAttributeType.DataType: return(FilterMatchStringList(s.DataTypeList, f)); default: return(false); // this should not happen } }