mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +00:00
Filtre amélioré, à généraliser
This commit is contained in:
parent
4fb034fbb6
commit
f1ee0e3833
1 changed files with 19 additions and 13 deletions
|
|
@ -27,6 +27,18 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool MatchSearch(Item item)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
Helpers.RemoveDiacritics(item.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()) ||
|
||||||
|
Helpers.RemoveDiacritics(item.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower());
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool MatchContains(string itemValue, string filterValue)
|
||||||
|
{
|
||||||
|
return string.IsNullOrEmpty(filterValue) || (itemValue != null && itemValue.ToLower().Contains(filterValue.ToLower()));
|
||||||
|
}
|
||||||
|
|
||||||
protected void RegisterFilters()
|
protected void RegisterFilters()
|
||||||
{
|
{
|
||||||
foreach (var filter in Filters)
|
foreach (var filter in Filters)
|
||||||
|
|
@ -870,22 +882,16 @@ namespace AideDeJeu.ViewModels
|
||||||
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
||||||
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
|
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
|
||||||
var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? "";
|
var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? "";
|
||||||
//token.ThrowIfCancellationRequested();
|
|
||||||
return items.Where(item =>
|
return items.Where(item =>
|
||||||
{
|
{
|
||||||
var magicitem = item as MagicItem;
|
var magicitem = item as MagicItem;
|
||||||
return magicitem != null &&
|
if (magicitem == null) return false;
|
||||||
magicitem.Type.ToLower().Contains(type.ToLower()) &&
|
var matchType = MatchContains(magicitem.Type, type);
|
||||||
(string.IsNullOrEmpty(rarity) || (magicitem.Rarity != null && magicitem.Rarity.ToLower().Contains(rarity.ToLower()))) &&
|
var matchRarity = MatchContains(magicitem.Rarity, rarity);
|
||||||
(string.IsNullOrEmpty(attunement) || (magicitem.Attunement != null && magicitem.Attunement.ToLower().Contains(attunement.ToLower()))) &&
|
var matchAttunement = MatchContains(magicitem.Attunement, attunement);
|
||||||
//priceComparer.Compare(equipment.Price, minPrice) >= 0 &&
|
var matchSearch = MatchSearch(magicitem);
|
||||||
//priceComparer.Compare(equipment.Price, maxPrice) <= 0 &&
|
return matchType && matchRarity && matchAttunement && matchSearch;
|
||||||
(
|
}).OrderBy(eq => eq.Name).AsEnumerable();
|
||||||
(Helpers.RemoveDiacritics(magicitem.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
|
||||||
(Helpers.RemoveDiacritics(magicitem.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
|
|
||||||
);
|
|
||||||
}).OrderBy(eq => eq.Name)
|
|
||||||
.AsEnumerable();
|
|
||||||
}, token);
|
}, token);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue