UI Iscrizioni

This commit is contained in:
2026-02-04 16:52:00 +01:00
parent 2b3bab6acb
commit 932299c98f
2 changed files with 81 additions and 0 deletions

View File

@ -51,6 +51,7 @@
<NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Clienti" destination="/management/Clienti" iconName="fa-address-card" title="Clienti"/> <NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Clienti" destination="/management/Clienti" iconName="fa-address-card" title="Clienti"/>
<NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Eventi" destination="/management/Eventi" iconName="fa-calendar" title="Eventi"/> <NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Eventi" destination="/management/Eventi" iconName="fa-calendar" title="Eventi"/>
<NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Ruoli" destination="/management/Ruoli" iconName="fa-lock" title="Ruoli"/> <NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Ruoli" destination="/management/Ruoli" iconName="fa-lock" title="Ruoli"/>
<NavigationItem currentUrl="@currentUrl" requiredUrl="/management/Iscrizioni" destination="/management/Iscrizioni" iconName="fa-lock" title="Iscrizioni"/>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -0,0 +1,80 @@
@page "/management/Iscrizioni"
@using Microsoft.EntityFrameworkCore
@using StandManager.Model
@rendermode InteractiveServer
@inject AuthenticationStateProvider auth
<PageTitle>Iscrizioni</PageTitle>
<div class="page-wrapper">
<!-- BEGIN PAGE BODY -->
<div class="page-body">
<div class="container-xl">
<div class="row row-cards">
<div class="col">
<!-- Page pre-title -->
<div class="page-pretitle">Overview</div>
<h2 class="page-title">Iscrizioni</h2>
</div>
<div class="col-lg-12">
<div class="card">
<div class="table-responsive">
<RadzenDataGrid @ref="iscrizioniGrid" AllowFiltering="true" AllowColumnResize="true" AllowAlternatingRows="false" FilterMode="FilterMode.CheckBoxList" AllowSorting="true" PageSize="25"
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
Data="@iscrizioni" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
<Columns>
<RadzenDataGridColumn Property="@nameof(IscrizioneEventoViewModel.RagioneSociale)" Title="Ragione sociale" Width="250px" />
<RadzenDataGridColumn Property="@nameof(IscrizioneEventoViewModel.PartitaIva)" Title="Partita IVA" Width="250px" />
<RadzenDataGridColumn Context="cliente" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Width="250px">
<Template Context="cliente">
<RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" class="rz-my-1 rz-ms-1" Click="@(args => EditRow(cliente))" @onclick:stopPropagation="true" />
<RadzenButton Icon="delete" ButtonStyle="ButtonStyle.Danger" Variant="Variant.Flat" Size="ButtonSize.Medium" Shade="Shade.Lighter" class="rz-my-1 rz-ms-1" Click="@(args => DeleteRow(cliente))" @onclick:stopPropagation="true" />
</Template>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@code {
List<IscrizioneEventoViewModel> iscrizioni;
RadzenDataGrid<IscrizioneEventoViewModel> iscrizioniGrid;
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
iscrizioni = (await _managerService.IscrizioneEventoService.RicercaQueryable(
x => x.Eliminato == false,
includi:x => x.Include(y => y.Cliente).Include(y => y.Evento).Include(y => y.InvitoEvento),
ordinamento: x => x.OrderBy(y => y.RagioneSociale)))
.Select(x => (IscrizioneEventoViewModel)x).ToList();
}
private async Task EditRow(IscrizioneEventoViewModel iscrizioneEvento)
{
_navManager.NavigateTo($"/management/Iscrizioni/Modifica/{iscrizioneEvento.Id}");
}
private async Task DeleteRow(IscrizioneEventoViewModel iscrizioneEvento)
{
var ok = await _dialogService.Confirm($"Vuoi davvero eliminare la registrazione {iscrizioneEvento.RagioneSociale}?", "Conferma eliminazione", new ConfirmOptions { OkButtonText = "Sì", CancelButtonText = "No", Width = "400px" });
if (ok == true)
{
await _managerService.IscrizioneEventoService.Elimina(iscrizioneEvento.Id, await MembershipUtils.GetUserId(auth));
iscrizioni = (await _managerService.IscrizioneEventoService.RicercaQueryable(
x => x.Eliminato == false, ordinamento: x => x.OrderBy(y => y.RagioneSociale)))
.Select(x => (IscrizioneEventoViewModel)x).ToList();
}
}
}