@using WotBlitzStatisticsPro.Blazor.Messages @inherits PlayerInfoTanksListBase; @if (TanksList != null && FilteredTankList.Count() > 0) {
@if(sorting == TanksSorting.LastBattle && isSortAscending) {} @if(sorting == TanksSorting.LastBattle && !isSortAscending) {}
@if(sorting == TanksSorting.Winrate && isSortAscending) {} @if(sorting == TanksSorting.Winrate && !isSortAscending) {}
@if(sorting == TanksSorting.Battles && isSortAscending) {} @if(sorting == TanksSorting.Battles && !isSortAscending) {}
@if(sorting == TanksSorting.Damage && isSortAscending) {} @if(sorting == TanksSorting.Damage && !isSortAscending) {}
@if(sorting == TanksSorting.Tier && isSortAscending) {} @if(sorting == TanksSorting.Tier && !isSortAscending) {}
Wn7 @if(sorting == TanksSorting.Wn7 && isSortAscending) {} @if(sorting == TanksSorting.Wn7 && !isSortAscending) {}
@foreach (var tank in FilteredTankList) {
}
@Localize["Tanks"]: @FilteredTankList.Count()
@foreach(var nationForFilter in NationsFilter) { }
@foreach(var tier in TierFilter) {
@tier.ItemName
}
@foreach(var typeFor in TankTypesFilter) { }
@foreach(var mastery in MasteryFilter) { }
} @code { private enum TanksSorting { LastBattle, Winrate, Battles, Damage, Wn7, Tier } private TanksSorting sorting = TanksSorting.LastBattle; private bool isSortAscending = false; private void OnFilterClick(MouseEventArgs e, TanksSorting sortingToApply) { if (sortingToApply != sorting) { sorting = sortingToApply; isSortAscending = false; } else { isSortAscending = !isSortAscending; } FilterTanksList(); } private void FilterTanksList() { switch (sorting) { case TanksSorting.LastBattle: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.LastBattleTime) : FilteredTankList.OrderByDescending(t => t.LastBattleTime); break; case TanksSorting.Winrate: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.WinRate) : FilteredTankList.OrderByDescending(t => t.WinRate); break; case TanksSorting.Battles: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Battles) : FilteredTankList.OrderByDescending(t => t.Battles); break; case TanksSorting.Damage: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.AvgDamage) : FilteredTankList.OrderByDescending(t => t.AvgDamage); break; case TanksSorting.Wn7: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Wn7) : FilteredTankList.OrderByDescending(t => t.Wn7); break; case TanksSorting.Tier: FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Tier) : FilteredTankList.OrderByDescending(t => t.Tier); break; } } private void ApplyNationFilter(MouseEventArgs e, string nationToApply) { if(FilteredNations.Contains(nationToApply)) { FilteredNations = FilteredNations.Where(n => n != nationToApply).ToArray(); } else { var nations = FilteredNations.ToList(); nations.Add(nationToApply); FilteredNations = nations.ToArray(); } OnFilterChange(null); } private string NationFilterStyle(string nation) { string basic = "nation-filter-flag"; if(FilteredNations.Contains(nation)) { return $"{basic} filter-selected"; } return basic; } private void ApplyTierFilter(MouseEventArgs e, int tierToApply) { if(FilteredTiers.Contains(tierToApply)) { FilteredTiers = FilteredTiers.Where(n => n != tierToApply).ToArray(); } else { var tiers = FilteredTiers.ToList(); tiers.Add(tierToApply); FilteredTiers = tiers.ToArray(); } OnFilterChange(null); } private string TierFilterStyle(int tier) { string basic = "tier-filter"; if(FilteredTiers.Contains(tier)) { return $"{basic} filter-selected"; } return basic; } private void ApplyTankTypeFilter(MouseEventArgs e, string typeToApply) { if(FilteredTankTypes.Contains(typeToApply)) { FilteredTankTypes = FilteredTankTypes.Where(n => n != typeToApply).ToArray(); } else { var types = FilteredTankTypes.ToList(); types.Add(typeToApply); FilteredTankTypes = types.ToArray(); } OnFilterChange(null); } private string TankTypeFilterStyle(string typeToApply) { string basic = "tier-filter"; if(FilteredTankTypes.Contains(typeToApply)) { return $"{basic} filter-selected"; } return basic; } private void ApplyPremiumFilter(MouseEventArgs e) { if(FilterIsPremium.HasValue && FilterIsPremium.Value == true) { FilterIsPremium = false; } else if(FilterIsPremium.HasValue && FilterIsPremium.Value == false) { FilterIsPremium = null; } else if(!FilterIsPremium.HasValue) { FilterIsPremium = true; } OnFilterChange(null); } private string PremiumStyle() { string basic = "tier-filter"; if(FilterIsPremium.HasValue && FilterIsPremium.Value == true) { return $"{basic} filter-selected"; } if(FilterIsPremium.HasValue && FilterIsPremium.Value == false) { return $"{basic} filter-non-premium-selected"; } return basic; } private void ApplyMasteryFilter(MouseEventArgs e, MarkOfMastery mastery) { if(FilteredMastery.Contains(mastery)) { FilteredMastery = FilteredMastery.Where(n => n != mastery).ToArray(); } else { var masteries = FilteredMastery.ToList(); masteries.Add(mastery); FilteredMastery = masteries.ToArray(); } OnFilterChange(null); } private string MasteryFilterStyle(MarkOfMastery mastery) { string basic = "tier-filter"; if(FilteredMastery.Contains(mastery)) { return $"{basic} filter-selected"; } return basic; } }