private void FillItems(IEnumerable <string> list, CreateFilterDelegate createFilterDelegate) { FilterItems.Clear(); var sorted = list.ToList(); sorted.Sort(); foreach (string s in sorted) { ListItem item = new ListItem(); item.AdditionalProperties[KEY_FILTER] = createFilterDelegate(s); // Creates a dynamic filter like s => s.Titel="Radio 100" if (_typ == "country") { item.SetLabel("Name", "[Country." + s + "]"); } else { item.SetLabel("Name", s); } FilterItems.Add(item); } FilterItems.FireChange(); }
private void CreateFiltersMulti(Func <MyStream, bool> predicate, Func <MyStream, string[]> selector, CreateFilterDelegate filter) { var list = WebradioHome.StreamList.Where(predicate).SelectMany(selector).Select(s => s.Trim()).Distinct(); FillItems(list, filter); }
private void CreateFiltersMulti(Func<MyStream, bool> predicate, Func<MyStream, string[]> selector, CreateFilterDelegate filter) { var list = WebradioHome.StreamList.Where(predicate).SelectMany(selector).Select(s => s.Trim()).Distinct(); FillItems(list, filter); }
private void FillItems(IEnumerable<string> list, CreateFilterDelegate createFilterDelegate) { FilterItems.Clear(); var sorted = list.ToList(); sorted.Sort(); foreach (string s in sorted) { ListItem item = new ListItem(); item.AdditionalProperties[KEY_FILTER] = createFilterDelegate(s); // Creates a dynamic filter like s => s.Titel="Radio 100" if (_typ == "country") { item.SetLabel("Name", "[Country." + s + "]"); } else { item.SetLabel("Name", s); } FilterItems.Add(item); } FilterItems.FireChange(); }
/// <summary> /// Initialize the plugin and it's name /// </summary> /// <param name="name"> /// The plugin's name /// </param> public FilterPlugin(string name) : base("Filters", name) { MethodInfo methodInfo = GetMethod ("CreateFilter"); CreateFilter = Delegate.CreateDelegate (typeof(CreateFilterDelegate), methodInfo) as CreateFilterDelegate; }