From ffb4c9872dcddea2c6e0e8686510cc4f85a63e99 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 26 Aug 2021 17:48:59 +0200 Subject: [PATCH] Aggiunta paginazione utenti --- GWMS.UI/Pages/UserAdmin.razor | 4 +- GWMS.UI/Pages/UserAdmin.razor.cs | 72 +++++++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/GWMS.UI/Pages/UserAdmin.razor b/GWMS.UI/Pages/UserAdmin.razor index aa623f7..46336ce 100644 --- a/GWMS.UI/Pages/UserAdmin.razor +++ b/GWMS.UI/Pages/UserAdmin.razor @@ -1,6 +1,7 @@ @page "/UserAdmin" @using GWMS.UI.Pages +@using GWMS.UI.Components @if (ShowPopup) { @@ -168,6 +169,7 @@ - \ No newline at end of file diff --git a/GWMS.UI/Pages/UserAdmin.razor.cs b/GWMS.UI/Pages/UserAdmin.razor.cs index aa09a45..5f2aed7 100644 --- a/GWMS.UI/Pages/UserAdmin.razor.cs +++ b/GWMS.UI/Pages/UserAdmin.razor.cs @@ -27,6 +27,11 @@ namespace GWMS.UI.Pages /// private IdentityUser objUser = new IdentityUser(); + /// + /// Collezione utenti + /// + private List RawList = new List(); + /// /// Elenco ROLES da mostrare in dropdown durante editing (1 solo? usare DB?!?) /// @@ -55,6 +60,10 @@ namespace GWMS.UI.Pages #region Private Properties + private int _currPage { get; set; } = 1; + + private int _numRecord { get; set; } = 10; + [CascadingParameter] private Task authenticationStateTask { get; set; } @@ -78,6 +87,36 @@ namespace GWMS.UI.Pages /// private string CurrentUserRole { get; set; } = "User"; + private int currPage + { + get => _currPage; + set + { + if (_currPage != value) + { + _currPage = value; + var pUpd = Task.Run(async () => await ReloadData()); + pUpd.Wait(); + } + } + } + + private bool isLoading { get; set; } = false; + + private int numRecord + { + get => _numRecord; + set + { + if (_numRecord != value) + { + _numRecord = value; + var pUpd = Task.Run(async () => await ReloadData()); + pUpd.Wait(); + } + } + } + #endregion Private Properties #region Protected Properties @@ -97,6 +136,19 @@ namespace GWMS.UI.Pages [Inject] protected IJSRuntime JSRuntime { get; set; } + protected int totalCount + { + get + { + int answ = 0; + if (RawList != null) + { + answ = RawList.Count; + } + return answ; + } + } + #endregion Protected Properties #region Private Methods @@ -220,6 +272,13 @@ namespace GWMS.UI.Pages ShowPopup = true; } + private async Task ReloadData() + { + isLoading = true; + await GetUsers(); + isLoading = false; + } + private async Task SaveUser() { try @@ -353,6 +412,16 @@ namespace GWMS.UI.Pages #region Protected Methods + protected void ForceReload(int newNum) + { + numRecord = newNum; + } + + protected void ForceReloadPage(int newNum) + { + currPage = newNum; + } + protected override async Task OnInitializedAsync() { AppMService.ShowSearch = true; @@ -386,7 +455,8 @@ namespace GWMS.UI.Pages // Collection to hold users UsersList = new List(); // get users from _UserManager - var user = _UserManager.Users.Select(x => new IdentityUser + RawList = _UserManager.Users.ToList(); + var user = RawList.Skip(numRecord * (currPage - 1)).Take(numRecord).Select(x => new IdentityUser { Id = x.Id, UserName = x.UserName,