diff --git a/Lieb/Pages/GuildWars2/BuildList.razor b/Lieb/Pages/GuildWars2/BuildList.razor
new file mode 100644
index 0000000..3723704
--- /dev/null
+++ b/Lieb/Pages/GuildWars2/BuildList.razor
@@ -0,0 +1,219 @@
+@using Lieb.Data
+@using Lieb.Models
+@using Lieb.Models.GuildWars2
+@inject GuildWars2AccountService GuildWars2AccountService
+@inject GuildWars2BuildService GuildWars2BuildService
+
+
+
+
+
+
+
+@code {
+
+ [Parameter]
+ public GuildWars2Account _account {get; set;}
+
+ [Parameter]
+ public bool _allowEdit {get; set;}
+
+ 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;
+ }
+
+ async Task EquippedStatusChanged(int buildId, ChangeEventArgs args)
+ {
+ bool isEquipped = bool.Parse(args.Value.ToString());
+ if(isEquipped)
+ {
+ await GuildWars2AccountService.AddBuild(_account.GuildWars2AccountId, buildId);
+ }
+ else
+ {
+ await GuildWars2AccountService.RemoveBuild(_account.GuildWars2AccountId, buildId);
+ }
+ _account = GuildWars2AccountService.GetAccount(_account.GuildWars2AccountId);
+ }
+
+ async Task TankingStatusChanged(int buildId, ChangeEventArgs args)
+ {
+ bool canTank = bool.Parse(args.Value.ToString());
+ await GuildWars2AccountService.ChangeTankStatus(_account.GuildWars2AccountId, buildId, canTank);
+ }
+
+ 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();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Lieb/Pages/GuildWars2/BuildList.razor.css b/Lieb/Pages/GuildWars2/BuildList.razor.css
new file mode 100644
index 0000000..5a9d4c6
--- /dev/null
+++ b/Lieb/Pages/GuildWars2/BuildList.razor.css
@@ -0,0 +1,23 @@
+.roletable{
+ margin-top: 15px;
+ border: 1px solid;
+
+}
+
+.roletable td {
+ border: 1px solid;
+ padding-left: 8px;
+ padding-right: 8px;
+}
+
+.checkboxfield
+{
+ text-align: center;
+}
+
+.roletable th {
+ border: 1px solid;
+ margin-left: 10px;
+ padding-left: 8px;
+ padding-right: 8px;
+}
diff --git a/Lieb/Pages/GuildWars2/BuildOverview.razor b/Lieb/Pages/GuildWars2/BuildOverview.razor
index 6cb1cc6..cbd7d5a 100644
--- a/Lieb/Pages/GuildWars2/BuildOverview.razor
+++ b/Lieb/Pages/GuildWars2/BuildOverview.razor
@@ -17,168 +17,12 @@
-
- Klasse:
-
- DamageType:
-
- Alacrity: AlacStatusChanged(args)" />
- Quickness: QuickStatusChanged(args)" />
- Might: MightStatusChanged(args)" />
-
-
-
+
@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();
- }
}
}
diff --git a/Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor b/Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor
new file mode 100644
index 0000000..0bd783a
--- /dev/null
+++ b/Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor
@@ -0,0 +1,97 @@
+@page "/gw2accountedit"
+@page "/gw2accountedit/{gw2Id}"
+@using Lieb.Data
+@using Lieb.Models
+@using Lieb.Models.GuildWars2
+@using System.ComponentModel.DataAnnotations
+@using System.Security.Claims
+@inject GuildWars2AccountService GuildWars2AccountService
+@inject GuildWars2BuildService GuildWars2BuildService
+@inject UserService UserService
+@inject NavigationManager NavigationManager
+@inject AuthenticationStateProvider AuthenticationStateProvider
+@inject IJSRuntime JsRuntime
+
+Manage Guild Wars 2 Account
+
+
+
+
+
+
+ @_saveMessage
+
+
+ Account name:
+
+
+
+
+
+
+
+
+
+
+
+ @if (_account.GuildWars2AccountId != 0)
+ {
+
+
+
+
+ }
+
+
+
+
+
+@code {
+
+ [Parameter]
+ public string gw2Id { get; set; }
+
+ public GuildWars2Account _account;
+
+ private LiebUser _user;
+
+ private string _saveMessage = string.Empty;
+
+ protected override async Task OnInitializedAsync()
+ {
+ var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
+ ulong discordId = ulong.Parse(authState.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
+ _user = UserService.GetLiebUserGW2AccountOnly(discordId);
+
+ if(!string.IsNullOrEmpty(gw2Id) && int.TryParse(gw2Id, out int parsedId) && _user.GuildWars2Accounts.Where(a => a.GuildWars2AccountId == parsedId).Any())
+ {
+ _account = GuildWars2AccountService.GetAccount(parsedId);
+ }
+ else
+ {
+ _account = new GuildWars2Account();
+ }
+ }
+
+ async Task DeleteAccountClicked()
+ {
+ bool confirmed = await JsRuntime.InvokeAsync("confirm", "Are you sure you want to delete this Account?\nThis will sign you off in every raid in which you are signed up with this account.");
+ if (confirmed)
+ {
+ await GuildWars2AccountService.DeleteAccount(_account.GuildWars2AccountId);
+ NavigationManager.NavigateTo("accountedit");
+ }
+ }
+
+ private async Task HandleValidSubmit()
+ {
+ await GuildWars2AccountService.AddOrEditAccount(_account, _user.Id);
+ _account = GuildWars2AccountService.GetAccount(_account.GuildWars2AccountId);
+ _saveMessage = "changes saved successfully";
+ }
+}
\ No newline at end of file
diff --git a/Lieb/Pages/User/ManageGuildWars2Account.razor.css b/Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor.css
similarity index 100%
rename from Lieb/Pages/User/ManageGuildWars2Account.razor.css
rename to Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor.css
diff --git a/Lieb/Pages/User/ManageGuildWars2Account.razor b/Lieb/Pages/User/ManageGuildWars2Account.razor
deleted file mode 100644
index a5393d8..0000000
--- a/Lieb/Pages/User/ManageGuildWars2Account.razor
+++ /dev/null
@@ -1,273 +0,0 @@
-@page "/gw2accountedit"
-@page "/gw2accountedit/{gw2Id}"
-@using Lieb.Data
-@using Lieb.Models
-@using Lieb.Models.GuildWars2
-@using System.ComponentModel.DataAnnotations
-@using System.Security.Claims
-@inject GuildWars2AccountService GuildWars2AccountService
-@inject GuildWars2BuildService GuildWars2BuildService
-@inject UserService UserService
-@inject NavigationManager NavigationManager
-@inject AuthenticationStateProvider AuthenticationStateProvider
-@inject IJSRuntime JsRuntime
-
-Manage Guild Wars 2 Account
-
-
-
-
-
-
- @_saveMessage
-
-
- Account name:
-
-
-
-
-
-
-
-
-
-
-
- @if (_account.GuildWars2AccountId != 0)
- {
-
-
- Klasse:
-
- DamageType:
-
- Alacrity: AlacStatusChanged(args)" />
- Quickness: QuickStatusChanged(args)" />
- Might: MightStatusChanged(args)" />
-
-
-
-
-
- }
-
-
-
-
-
-@code {
-
- [Parameter]
- public string gw2Id { get; set; }
-
- public GuildWars2Account _account;
-
- private LiebUser _user;
-
- private string _saveMessage = string.Empty;
-
- 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()
- {
- var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
- ulong discordId = ulong.Parse(authState.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
- _user = UserService.GetLiebUserGW2AccountOnly(discordId);
-
- if(!string.IsNullOrEmpty(gw2Id) && int.TryParse(gw2Id, out int parsedId) && _user.GuildWars2Accounts.Where(a => a.GuildWars2AccountId == parsedId).Any())
- {
- _account = GuildWars2AccountService.GetAccount(parsedId);
- }
- else
- {
- _account = new GuildWars2Account();
- }
- _builds = GuildWars2BuildService.GetBuilds();
- _buildsToShow = _builds;
- }
-
- async Task EquippedStatusChanged(int buildId, ChangeEventArgs args)
- {
- bool isEquipped = bool.Parse(args.Value.ToString());
- if(isEquipped)
- {
- await GuildWars2AccountService.AddBuild(_account.GuildWars2AccountId, buildId);
- }
- else
- {
- await GuildWars2AccountService.RemoveBuild(_account.GuildWars2AccountId, buildId);
- }
- _account = GuildWars2AccountService.GetAccount(_account.GuildWars2AccountId);
- }
-
- async Task TankingStatusChanged(int buildId, ChangeEventArgs args)
- {
- bool canTank = bool.Parse(args.Value.ToString());
- await GuildWars2AccountService.ChangeTankStatus(_account.GuildWars2AccountId, buildId, canTank);
- }
-
- async Task DeleteAccountClicked()
- {
- bool confirmed = await JsRuntime.InvokeAsync("confirm", "Are you sure you want to delete this Account?\nThis will sign you off in every raid in which you are signed up with this account.");
- if (confirmed)
- {
- await GuildWars2AccountService.DeleteAccount(_account.GuildWars2AccountId);
- NavigationManager.NavigateTo("accountedit");
- }
- }
-
- private async Task HandleValidSubmit()
- {
- await GuildWars2AccountService.AddOrEditAccount(_account, _user.Id);
- _account = GuildWars2AccountService.GetAccount(_account.GuildWars2AccountId);
- _saveMessage = "changes saved successfully";
- }
-
- 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();
- }
- }
-}
\ No newline at end of file