private static bool Match(this IItemFilters filters, ItemModelBase item) { return((filters.Category == default || filters.Category == item.Category) && (filters.Rarity == default || filters.Rarity == item.Rarity) && (filters.Element == default || filters.Element == item.Definition.Element) && (filters.ArmorType == default || filters.ArmorType == item.Definition.ArmorType) && (filters.ItemName.Length == 0 || item.DisplayName.IndexOf(filters.ItemName, StringComparison.InvariantCultureIgnoreCase) != -1)); }
public static IReadOnlyList <TItem> GetFilteredItems <TItem>(this IReadOnlyList <TItem> items, IItemFilters filters) where TItem : ItemModelBase { return(filters.IsEmpty() ? items : items.Where(filters.Match).ToList()); }
private static bool IsEmpty(this IItemFilters filters) { return(filters.Category == default && filters.Rarity == default && filters.Element == default && filters.ArmorType == default && filters.ItemName.Length == 0); }
public static int GetFilteredItemCount(this IReadOnlyCollection <ItemModelBase> items, IItemFilters filters) { return(filters.IsEmpty() ? items.Count : items.Count(filters.Match)); }