@page "/buildoverview" @using Lieb.Data @using Lieb.Models.GuildWars2 @inject GuildWars2BuildService GuildWars2BuildService

Build Overview

@foreach (var build in _buildsToShow.OrderBy(b => b.Class).ThenBy(b => b.EliteSpecialization)) { @if(string.IsNullOrEmpty(build.SourceLink)) { } else { @build.Source } }
Name Class Elite Might Quick Alac Heal Power Condition Hybrid Other Random Source
@build.Class.ToString() @build.EliteSpecialization.ToString() @build.Source
@code { private List _builds; private List _buildsToShow; private GuildWars2Class? _filterClass; private bool _filterAlac = false; private bool _filterQuick = false; private bool _filterMight = false; private DamageType? _filterDamageType; protected override async Task OnInitializedAsync() { _builds = GuildWars2BuildService.GetBuilds(); _buildsToShow = _builds; } private void ChangeClassFilter( ChangeEventArgs e) { if(Enum.TryParse(e.Value?.ToString(), out GuildWars2Class gw2Class)) { _filterClass = gw2Class; } else { _filterClass = null; } ApplyFilter(); } private void ChangeDamageTypeFilter( ChangeEventArgs e) { if(Enum.TryParse(e.Value?.ToString(), out DamageType damage)) { _filterDamageType = damage; } else { _filterDamageType = null; } ApplyFilter(); } private void AlacStatusChanged(ChangeEventArgs args) { _filterAlac = bool.Parse(args.Value.ToString()); ApplyFilter(); } private void QuickStatusChanged(ChangeEventArgs args) { _filterQuick = bool.Parse(args.Value.ToString()); ApplyFilter(); } private void MightStatusChanged(ChangeEventArgs args) { _filterMight = bool.Parse(args.Value.ToString()); ApplyFilter(); } private void ApplyFilter() { _buildsToShow = _builds; if(_filterClass != null) { _buildsToShow = _buildsToShow.Where(b => b.Class == _filterClass).ToList(); } if(_filterAlac) { _buildsToShow = _buildsToShow.Where(b => b.Alacrity).ToList(); } if(_filterQuick) { _buildsToShow = _buildsToShow.Where(b => b.Quickness).ToList(); } if(_filterMight) { _buildsToShow = _buildsToShow.Where(b => b.Might).ToList(); } if(_filterDamageType != null) { _buildsToShow = _buildsToShow.Where(b => b.DamageType == _filterDamageType).ToList(); } } }