From c8673f9dde8e8e1b942ff42e9e12d67f78e4c40e Mon Sep 17 00:00:00 2001 From: Sarah Faey Date: Thu, 8 Dec 2022 20:35:44 +0100 Subject: [PATCH] created BuildList.razor --- Lieb/Pages/GuildWars2/BuildList.razor | 219 ++++++++++++++ Lieb/Pages/GuildWars2/BuildList.razor.css | 23 ++ Lieb/Pages/GuildWars2/BuildOverview.razor | 158 +--------- .../GuildWars2/ManageGuildWars2Account.razor | 97 +++++++ .../ManageGuildWars2Account.razor.css | 0 Lieb/Pages/User/ManageGuildWars2Account.razor | 273 ------------------ 6 files changed, 340 insertions(+), 430 deletions(-) create mode 100644 Lieb/Pages/GuildWars2/BuildList.razor create mode 100644 Lieb/Pages/GuildWars2/BuildList.razor.css create mode 100644 Lieb/Pages/GuildWars2/ManageGuildWars2Account.razor rename Lieb/Pages/{User => GuildWars2}/ManageGuildWars2Account.razor.css (100%) delete mode 100644 Lieb/Pages/User/ManageGuildWars2Account.razor 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 + + + +
+ + + + @if (_account != null) + { + + + } + + + + + + + + + + + + + + + @foreach (GuildWars2Build build in _buildsToShow.OrderBy(b => b.Class).ThenBy(b => b.EliteSpecialization)) + { + bool isEquipped = false; + bool canTank = false; + @if(_account != null) + { + Equipped? equippedBuild = _account.EquippedBuilds.FirstOrDefault(e => e.GuildWars2BuildId == build.GuildWars2BuildId); + isEquipped = equippedBuild != null; + if (isEquipped) + { + canTank = equippedBuild.CanTank; + } + } + + + @if (_account != null) + { + + + } + + + + + + + + + + + + + + + + + + + + @if(string.IsNullOrEmpty(build.SourceLink)) + { + + } + else + { + + } + + } +
EquippedTankBuildClassEliteMightQuickAlacHealPowerConditionHybridOtherRandomSource
@build.Class.ToString()@build.EliteSpecialization.ToString()@build.Source@build.Source
+ +@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 @@ - - - - - - - - - - - - - - - - - - - @foreach (var build in _buildsToShow.OrderBy(b => b.Class).ThenBy(b => b.EliteSpecialization)) - { - - - - - - - - - - - - - - - - - - - - - - - @if(string.IsNullOrEmpty(build.SourceLink)) - { - - } - else - { - - } - - } -
NameClassEliteMightQuickAlacHealPowerConditionHybridOtherRandomSource
@build.Class.ToString()@build.EliteSpecialization.ToString()@build.Source@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(); - } } } 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

+

+ +

+ + +
+ + + +
+ + @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

-

- -

- - -
- - - -
- - @if (_account.GuildWars2AccountId != 0) - { -
- - - - - - - - - - - - - - - - - - - - @foreach (GuildWars2Build build in _buildsToShow.OrderBy(b => b.Class).ThenBy(b => b.EliteSpecialization)) - { - Equipped? equippedBuild = _account.EquippedBuilds.FirstOrDefault(e => e.GuildWars2BuildId == build.GuildWars2BuildId); - bool isEquipped = equippedBuild != null; - bool canTank = false; - if (isEquipped) - { - canTank = equippedBuild.CanTank; - } - - - - - - - - - - - - - - - - - @if(string.IsNullOrEmpty(build.SourceLink)) - { - - } - else - { - - } - - } -
EquippedTankBuildClassEliteMightQuickAlacHealPowerConditionHybridOtherRandomSource
@build.BuildName@build.Class.ToString()@build.EliteSpecialization.ToString()@build.Source@build.Source
- -
- - } - -
-
- - -@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