From 686c06ae839f65904ee3ac0422555e1f060abcd2 Mon Sep 17 00:00:00 2001 From: Leandro Hernan Rojas Date: Sun, 6 Apr 2025 18:08:45 -0300 Subject: [PATCH] Add Patch UI Customer --- phronCare.UIBlazor/Data/PagedResult.cs | 10 ------ .../Pages/Sales/Customers.razor | 36 +++++++++++++++++-- 2 files changed, 33 insertions(+), 13 deletions(-) delete mode 100644 phronCare.UIBlazor/Data/PagedResult.cs diff --git a/phronCare.UIBlazor/Data/PagedResult.cs b/phronCare.UIBlazor/Data/PagedResult.cs deleted file mode 100644 index c249dd6..0000000 --- a/phronCare.UIBlazor/Data/PagedResult.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace phronCare.UIBlazor.Data -{ - public class PagedResult - { - public IEnumerable Items { get; set; } - public int TotalItems { get; set; } - public int Page { get; set; } - public int PageSize { get; set; } - } -} diff --git a/phronCare.UIBlazor/Pages/Sales/Customers.razor b/phronCare.UIBlazor/Pages/Sales/Customers.razor index 31fcd32..7369d87 100644 --- a/phronCare.UIBlazor/Pages/Sales/Customers.razor +++ b/phronCare.UIBlazor/Pages/Sales/Customers.razor @@ -1,9 +1,10 @@ @page "/customers" @using phronCare.UIBlazor.Services.Sales @using phronCare.UIBlazor.Data - +@using Domain.Generics @inject CustomerHttpService CustomerService +@inject NavigationManager Nav

Buscar Clientes

@@ -76,15 +77,36 @@ else private CustomerSearchParams SearchParams = new(); private PagedResult? PagedResult; + [Parameter, SupplyParameterFromQuery] public string? Name { get; set; } + [Parameter, SupplyParameterFromQuery] public string? Email { get; set; } + [Parameter, SupplyParameterFromQuery] public string? Document { get; set; } + [Parameter, SupplyParameterFromQuery] public int? Page { get; set; } + [Parameter, SupplyParameterFromQuery] public int? PageSize { get; set; } + + protected override async Task OnParametersSetAsync() + { + SearchParams = new CustomerSearchParams + { + Name = Name, + Email = Email, + Document = Document, + Page = Page ?? 1, + PageSize = PageSize ?? 10 + }; + + await CargarClientes(); + } + private async Task BuscarClientes() { - SearchParams.Page = 1; // reset al buscar + SearchParams.Page = 1; + ActualizarUrl(); await CargarClientes(); } private async Task CargarClientes() { - // pagedResult = await CustomerHttpService.searcs(SearchParams); + PagedResult = await CustomerService.SearchCustomersAsync(SearchParams); } private async Task SiguientePagina() @@ -92,6 +114,7 @@ else if (PuedeAvanzar) { SearchParams.Page++; + ActualizarUrl(); await CargarClientes(); } } @@ -101,10 +124,17 @@ else if (PuedeRetroceder) { SearchParams.Page--; + ActualizarUrl(); await CargarClientes(); } } + private void ActualizarUrl() + { + var query = $"/customers?name={SearchParams.Name}&email={SearchParams.Email}&document={SearchParams.Document}&page={SearchParams.Page}&pageSize={SearchParams.PageSize}"; + Nav.NavigateTo(query); + } + private int TotalPaginas => PagedResult is null ? 1 : (int)Math.Ceiling((double)(PagedResult.TotalItems) / SearchParams.PageSize);