diff --git a/Lieb/Pages/GuildWars2/BuildOverview.razor b/Lieb/Pages/GuildWars2/BuildOverview.razor
index 4f25ad5..fee9950 100644
--- a/Lieb/Pages/GuildWars2/BuildOverview.razor
+++ b/Lieb/Pages/GuildWars2/BuildOverview.razor
@@ -18,14 +18,25 @@
@@ -90,21 +101,84 @@
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 ChangeFilter( ChangeEventArgs e)
+ private void ChangeClassFilter( ChangeEventArgs e)
{
- if(Enum.TryParse(e.Value?.ToString(),out GuildWars2Class selectedClass))
+ if(Enum.TryParse(e.Value?.ToString(), out GuildWars2Class gw2Class))
{
- _buildsToShow = _builds.Where(b => b.Class == selectedClass).ToList();
+ _filterClass = gw2Class;
}
else
{
- _buildsToShow = _builds;
+ _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();
}
}
}
diff --git a/Lieb/Pages/User/ManageGuildWars2Account.razor b/Lieb/Pages/User/ManageGuildWars2Account.razor
index c944b61..5ea37dc 100644
--- a/Lieb/Pages/User/ManageGuildWars2Account.razor
+++ b/Lieb/Pages/User/ManageGuildWars2Account.razor
@@ -43,14 +43,25 @@
{
- Filter:
-
@@ -130,6 +141,12 @@
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()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
@@ -185,15 +202,72 @@
_saveMessage = "changes saved successfully";
}
- private void ChangeBuildFilter( ChangeEventArgs e)
+ private void ChangeClassFilter( ChangeEventArgs e)
{
- if(Enum.TryParse(e.Value?.ToString(),out GuildWars2Class selectedClass))
+ if(Enum.TryParse(e.Value?.ToString(), out GuildWars2Class gw2Class))
{
- _buildsToShow = _builds.Where(b => b.Class == selectedClass).ToList();
+ _filterClass = gw2Class;
}
else
{
- _buildsToShow = _builds;
+ _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();
}
}
}
\ No newline at end of file