Exemplo n.º 1
0
        /// <summary>
        /// Update binding to reflect data or filter changes
        /// </summary>
        public override void UpdateFilter()
        {
            // always active filter
            SortableBindingList <ChampionInfo> new_binding = new SortableBindingList <ChampionInfo>(this.Source.Where(info => info != null).ToList <ChampionInfo>());
            // other filters
            string filter_category = this.FilterItems.Count > 0 ? this.FilterItems[0] : null;

            switch (filter_category)
            {
            case "Free":
                if (this.SearchText != "Any")
                {
                    bool free_to_play = this.SearchText == "Free";
                    new_binding = new SortableBindingList <ChampionInfo>(this.Source.Where(info =>
                                                                                           info.FreeToPlay == free_to_play).ToList <ChampionInfo>());
                }
                break;

            case "Name":
                new_binding = new SortableBindingList <ChampionInfo>(this.Source.Where(info =>
                                                                                       info.Name.ToUpper().Contains(this.SearchText.ToUpper())).ToList <ChampionInfo>());
                break;

            case "Tags":
                new_binding = new SortableBindingList <ChampionInfo>(this.Source.Where(info =>
                                                                                       info.TagList.ToUpper().Contains(this.SearchText.ToUpper())).ToList <ChampionInfo>());
                break;

            case "Title":
                new_binding = new SortableBindingList <ChampionInfo>(this.Source.Where(info =>
                                                                                       info.Title.ToUpper().Contains(this.SearchText.ToUpper())).ToList <ChampionInfo>());
                break;

            // TODO: 07/20/16 implement more filters here
            default:
                break;
            }
            this.Binding = new_binding;
            this.OnDataUpdateFinished();
            return;
        }
        /// <summary>
        /// Update binding to reflect data or filter changes
        /// </summary>
        public override void UpdateFilter()
        {
            // always active filter
            SortableBindingList <ItemInfo> new_binding = new SortableBindingList <ItemInfo>(this.Source.Where(info => string.IsNullOrWhiteSpace(info.RequiredChampion)).ToList <ItemInfo>());

            // other filters
            if (this.FilterItems.Contains("Consumables"))
            {
                new_binding =
                    new SortableBindingList <ItemInfo>(new_binding.Where(info => info.Consumable).ToList <ItemInfo>());
            }
            if (this.FilterItems.Contains("Non-Consumables"))
            {
                new_binding =
                    new SortableBindingList <ItemInfo>(new_binding.Where(info => !info.Consumable).ToList <ItemInfo>());
            }
            // TODO: 07/20/16 implement more filters here
            this.Binding = new_binding;
            this.OnDataUpdateFinished();
            return;
        }
Exemplo n.º 3
0
 private void ChampionDataManager_DataUpdateFinished()
 {
     this.Source = new SortableBindingList <T>(this.dataManager.GetList());
     this.UpdateFilter();
     return;
 }