From 62d2249f406d0ddc925016667ffd898596ee7f4d Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Mon, 7 Oct 2024 20:50:20 +0200 Subject: [PATCH] Refactor (#220) --- src/AliasVault.Admin/Main/Pages/Emails.razor | 2 +- .../Main/Pages/Logging/Auth.razor | 28 +++-- .../Main/Pages/Logging/General.razor | 2 +- .../Main/Pages/Users/Users.razor | 111 ++++++++++-------- ...20241007153012_DatetimeOffsetToDateTime.cs | 3 +- .../Tables/SortableTable.razor | 4 +- .../Common/ClientPlaywrightTest.cs | 4 +- 7 files changed, 87 insertions(+), 67 deletions(-) diff --git a/src/AliasVault.Admin/Main/Pages/Emails.razor b/src/AliasVault.Admin/Main/Pages/Emails.razor index 0cd61ee51..49a64cde7 100644 --- a/src/AliasVault.Admin/Main/Pages/Emails.razor +++ b/src/AliasVault.Admin/Main/Pages/Emails.razor @@ -22,7 +22,7 @@ else
- + @foreach (var email in EmailList) { diff --git a/src/AliasVault.Admin/Main/Pages/Logging/Auth.razor b/src/AliasVault.Admin/Main/Pages/Logging/Auth.razor index ced490889..7c76d4081 100644 --- a/src/AliasVault.Admin/Main/Pages/Logging/Auth.razor +++ b/src/AliasVault.Admin/Main/Pages/Logging/Auth.razor @@ -41,7 +41,7 @@ else
- + @foreach (var log in LogList) { @@ -173,6 +173,23 @@ else } } + query = ApplySort(query); + + TotalRecords = await query.CountAsync(); + LogList = await query + .Skip((CurrentPage - 1) * PageSize) + .Take(PageSize) + .ToListAsync(); + + IsLoading = false; + StateHasChanged(); + } + + /// + /// Apply sort to the query. + /// + private IQueryable ApplySort(IQueryable query) + { // Apply sort. switch (SortColumn) { @@ -208,14 +225,7 @@ else break; } - TotalRecords = await query.CountAsync(); - LogList = await query - .Skip((CurrentPage - 1) * PageSize) - .Take(PageSize) - .ToListAsync(); - - IsLoading = false; - StateHasChanged(); + return query; } private async Task DeleteLogsWithConfirmation() diff --git a/src/AliasVault.Admin/Main/Pages/Logging/General.razor b/src/AliasVault.Admin/Main/Pages/Logging/General.razor index c5d7389aa..02ab7eb6e 100644 --- a/src/AliasVault.Admin/Main/Pages/Logging/General.razor +++ b/src/AliasVault.Admin/Main/Pages/Logging/General.razor @@ -40,7 +40,7 @@ else - + @foreach (var log in LogList) { diff --git a/src/AliasVault.Admin/Main/Pages/Users/Users.razor b/src/AliasVault.Admin/Main/Pages/Users/Users.razor index 6041ef9a1..603985ac3 100644 --- a/src/AliasVault.Admin/Main/Pages/Users/Users.razor +++ b/src/AliasVault.Admin/Main/Pages/Users/Users.razor @@ -26,7 +26,7 @@ else - + @foreach (var user in UserList) { @@ -117,57 +117,9 @@ else } // Apply sort. - switch (SortColumn) - { - case "Id": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.Id) - : query.OrderByDescending(x => x.Id); - break; - case "CreatedAt": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.CreatedAt) - : query.OrderByDescending(x => x.CreatedAt); - break; - case "UserName": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.UserName) - : query.OrderByDescending(x => x.UserName); - break; - case "VaultCount": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.Vaults.Count()) - : query.OrderByDescending(x => x.Vaults.Count()); - break; - case "EmailClaimCount": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.EmailClaims.Count()) - : query.OrderByDescending(x => x.EmailClaims.Count()); - break; - case "VaultStorageInKb": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.Vaults.Sum(v => v.FileSize)) - : query.OrderByDescending(x => x.Vaults.Sum(v => v.FileSize)); - break; - case "TwoFactorEnabled": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.TwoFactorEnabled) - : query.OrderByDescending(x => x.TwoFactorEnabled); - break; - case "LastVaultUpdate": - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.Vaults.Max(v => v.CreatedAt)) - : query.OrderByDescending(x => x.Vaults.Max(v => v.CreatedAt)); - break; - default: - query = SortDirection == SortDirection.Ascending - ? query.OrderBy(x => x.Id) - : query.OrderByDescending(x => x.Id); - break; - } + query = ApplySort(query); TotalRecords = await query.CountAsync(); - var users = await query .Skip((CurrentPage - 1) * PageSize) .Take(PageSize) @@ -204,4 +156,63 @@ else IsLoading = false; StateHasChanged(); } + + /// + /// Apply sort to the query. + /// + private IQueryable ApplySort(IQueryable query) + { + // Apply sort. + switch (SortColumn) + { + case "Id": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.Id) + : query.OrderByDescending(x => x.Id); + break; + case "CreatedAt": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.CreatedAt) + : query.OrderByDescending(x => x.CreatedAt); + break; + case "UserName": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.UserName) + : query.OrderByDescending(x => x.UserName); + break; + case "VaultCount": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.Vaults.Count) + : query.OrderByDescending(x => x.Vaults.Count); + break; + case "EmailClaimCount": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.EmailClaims.Count) + : query.OrderByDescending(x => x.EmailClaims.Count); + break; + case "VaultStorageInKb": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.Vaults.Sum(v => v.FileSize)) + : query.OrderByDescending(x => x.Vaults.Sum(v => v.FileSize)); + break; + case "TwoFactorEnabled": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.TwoFactorEnabled) + : query.OrderByDescending(x => x.TwoFactorEnabled); + break; + case "LastVaultUpdate": + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.Vaults.Max(v => v.CreatedAt)) + : query.OrderByDescending(x => x.Vaults.Max(v => v.CreatedAt)); + break; + default: + query = SortDirection == SortDirection.Ascending + ? query.OrderBy(x => x.Id) + : query.OrderByDescending(x => x.Id); + break; + } + + return query; + } + } diff --git a/src/Databases/AliasServerDb/Migrations/20241007153012_DatetimeOffsetToDateTime.cs b/src/Databases/AliasServerDb/Migrations/20241007153012_DatetimeOffsetToDateTime.cs index 483a37051..c835ed734 100644 --- a/src/Databases/AliasServerDb/Migrations/20241007153012_DatetimeOffsetToDateTime.cs +++ b/src/Databases/AliasServerDb/Migrations/20241007153012_DatetimeOffsetToDateTime.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Migrations; +// +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable diff --git a/src/Shared/AliasVault.RazorComponents/Tables/SortableTable.razor b/src/Shared/AliasVault.RazorComponents/Tables/SortableTable.razor index 542f6503a..d46a49dd7 100644 --- a/src/Shared/AliasVault.RazorComponents/Tables/SortableTable.razor +++ b/src/Shared/AliasVault.RazorComponents/Tables/SortableTable.razor @@ -1,6 +1,4 @@ -@typeparam TItem - - +
@foreach (var column in Columns) diff --git a/src/Tests/AliasVault.E2ETests/Common/ClientPlaywrightTest.cs b/src/Tests/AliasVault.E2ETests/Common/ClientPlaywrightTest.cs index f00219079..986394ab8 100644 --- a/src/Tests/AliasVault.E2ETests/Common/ClientPlaywrightTest.cs +++ b/src/Tests/AliasVault.E2ETests/Common/ClientPlaywrightTest.cs @@ -253,8 +253,8 @@ public class ClientPlaywrightTest : PlaywrightTest await Page.ClickAsync("text=" + credentialName); // Wait for the credential details page to load. - await WaitForUrlAsync("credentials/**", "Delete credentials entry"); - await Page.ClickAsync("text=Delete credentials entry"); + await WaitForUrlAsync("credentials/**", "Delete"); + await Page.ClickAsync("text=Delete"); // Wait for the delete credential page to load. await WaitForUrlAsync("credentials/**/delete", "You can delete a credentials entry below");