commit
This commit is contained in:
@ -0,0 +1,9 @@
|
|||||||
|
using OAService.Service.Repository;
|
||||||
|
using OAService.Service.Servizi.Interfacce;
|
||||||
|
using TecniStamp.Domain;
|
||||||
|
|
||||||
|
namespace TecniStamp.Service.Interfaces;
|
||||||
|
|
||||||
|
public interface IMacchinarioService : ITService<Macchinario>
|
||||||
|
{
|
||||||
|
}
|
||||||
@ -7,4 +7,5 @@ public interface IManagerService
|
|||||||
IRuoloService RuoloService{ get; set; }
|
IRuoloService RuoloService{ get; set; }
|
||||||
ISezioneService SezioneService { get; set; }
|
ISezioneService SezioneService { get; set; }
|
||||||
IUserService UtenteService { get; set; }
|
IUserService UtenteService { get; set; }
|
||||||
|
IMacchinarioService MacchinarioService { get; set; }
|
||||||
}
|
}
|
||||||
13
TecniStamp/TecniStamp.Service/MacchinarioService.cs
Normal file
13
TecniStamp/TecniStamp.Service/MacchinarioService.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using OAService.Service.Servizi.Implementazioni;
|
||||||
|
using TecniStamp.Domain;
|
||||||
|
using TecniStamp.Service.Interfaces;
|
||||||
|
using TecniStamp.Service.Repository;
|
||||||
|
|
||||||
|
namespace TecniStamp.Service;
|
||||||
|
|
||||||
|
public class MacchinarioService : TService<Macchinario>, IMacchinarioService
|
||||||
|
{
|
||||||
|
public MacchinarioService(ITecniStampUnitOfWork unitOfWork) : base(unitOfWork)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,13 +4,14 @@ namespace TecniStamp.Service;
|
|||||||
|
|
||||||
public class ManagerService : IManagerService
|
public class ManagerService : IManagerService
|
||||||
{
|
{
|
||||||
public ManagerService(IUserService userService, ISezioneService sezioneService, IPermissionService permissionService, IRuoloService ruoloService, IFeatureService featureService)
|
public ManagerService(IUserService userService, ISezioneService sezioneService, IPermissionService permissionService, IRuoloService ruoloService, IFeatureService featureService, IMacchinarioService macchinarioService)
|
||||||
{
|
{
|
||||||
UtenteService = userService;
|
UtenteService = userService;
|
||||||
SezioneService = sezioneService;
|
SezioneService = sezioneService;
|
||||||
PermissionService = permissionService;
|
PermissionService = permissionService;
|
||||||
RuoloService = ruoloService;
|
RuoloService = ruoloService;
|
||||||
FeatureService = featureService;
|
FeatureService = featureService;
|
||||||
|
MacchinarioService = macchinarioService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IFeatureService FeatureService { get; set; }
|
public IFeatureService FeatureService { get; set; }
|
||||||
@ -18,4 +19,5 @@ public class ManagerService : IManagerService
|
|||||||
public IRuoloService RuoloService { get; set; }
|
public IRuoloService RuoloService { get; set; }
|
||||||
public ISezioneService SezioneService { get; set; }
|
public ISezioneService SezioneService { get; set; }
|
||||||
public IUserService UtenteService { get; set; }
|
public IUserService UtenteService { get; set; }
|
||||||
|
public IMacchinarioService MacchinarioService { get; set; }
|
||||||
}
|
}
|
||||||
@ -0,0 +1,97 @@
|
|||||||
|
@page "/Anagrafiche/Macchinari"
|
||||||
|
@using Microsoft.EntityFrameworkCore
|
||||||
|
@using TecniStamp.Model
|
||||||
|
@using TecniStamp.Model.Common
|
||||||
|
@using TecniStamp.Utils
|
||||||
|
|
||||||
|
@rendermode InteractiveServer
|
||||||
|
@inject AuthenticationStateProvider auth
|
||||||
|
|
||||||
|
<PageTitle>Macchinari</PageTitle>
|
||||||
|
<Breadcrumb Items="BreadcrumbList" />
|
||||||
|
|
||||||
|
<main role="main">
|
||||||
|
<div class="container-fluid h-100 mt-5">
|
||||||
|
<div class="row justify-content-start">
|
||||||
|
<div class="row row-cards">
|
||||||
|
<div class="col-auto ms-auto">
|
||||||
|
<div class="btn-list">
|
||||||
|
<a href="/Anagrafiche/Macchinari/Modifica" class="btn btn-primary btn-5 d-none d-sm-inline-block">
|
||||||
|
Nuovo Macchinario
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<RadzenDataGrid @ref="macchinariGrid" AllowFiltering="true" AllowColumnResize="true" AllowAlternatingRows="false" FilterMode="FilterMode.CheckBoxList" AllowSorting="true" PageSize="25"
|
||||||
|
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
|
||||||
|
Data="@macchinari" ColumnWidth="300px" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
|
||||||
|
<Columns>
|
||||||
|
<RadzenDataGridColumn Property="@nameof(UserViewModel.Nome)" Title="Nome" Width="160px" />
|
||||||
|
<RadzenDataGridColumn Property="@nameof(UserViewModel.Cognome)" Title="Cognome" Width="160px" />
|
||||||
|
<RadzenDataGridColumn Property="@nameof(UserViewModel.Email)" Title="Mail" Width="200px" />
|
||||||
|
<RadzenDataGridColumn Property="@nameof(UserViewModel.Ruolo)" Title="Ruolo" Width="200px" />
|
||||||
|
|
||||||
|
<RadzenDataGridColumn Context="order" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="200px">
|
||||||
|
<Template Context="user">
|
||||||
|
<RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" class="rz-my-1 rz-ms-1" Click="@(args => EditRow(user))" @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(user))" @onclick:stopPropagation="true" />
|
||||||
|
</Template>
|
||||||
|
</RadzenDataGridColumn>
|
||||||
|
</Columns>
|
||||||
|
</RadzenDataGrid>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
List<MacchinarioViewModel> macchinari;
|
||||||
|
RadzenDataGrid<MacchinarioViewModel> macchinariGrid;
|
||||||
|
public List<BreadcrumbViewModel> BreadcrumbList { get; set; } = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Carica la lista degli utenti non eliminati, ordinandoli per cognome e nome.
|
||||||
|
/// </summary>
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
|
||||||
|
macchinari = (await _managerService.MacchinarioService.RicercaQueryable(
|
||||||
|
x => x.Eliminato == false,
|
||||||
|
ordinamento: x => x.OrderBy(y => y.Descrizione)))
|
||||||
|
.Select(x => (MacchinarioViewModel)x).ToList();
|
||||||
|
|
||||||
|
BreadcrumbList = await BreadcrumbUtils.BuildBreadcrumbByFeature(_managerService, "Macchinari_Insert");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Apre la pagina di modifica per il cliente selezionato.
|
||||||
|
/// </summary>
|
||||||
|
private async Task EditRow(MacchinarioViewModel macchinario)
|
||||||
|
{
|
||||||
|
_navManager.NavigateTo($"/Anagrafiche/Macchinari/Modifica/{macchinario.Id}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Chiede conferma ed elimina l’utente; se confermato, aggiorna la lista
|
||||||
|
/// ricaricandola dal database.
|
||||||
|
/// </summary>
|
||||||
|
private async Task DeleteRow(MacchinarioViewModel macchinario)
|
||||||
|
{
|
||||||
|
var ok = await _dialogService.Confirm($"Vuoi davvero eliminare il macchinario {macchinario.Descrizione}?", "Conferma eliminazione", new ConfirmOptions { OkButtonText = "Sì", CancelButtonText = "No", Width = "400px" });
|
||||||
|
|
||||||
|
if (ok == true)
|
||||||
|
{
|
||||||
|
await _managerService.MacchinarioService.Elimina(macchinario.Id, await MembershipUtils.GetUserId(auth));
|
||||||
|
macchinari = (await _managerService.MacchinarioService.RicercaQueryable(
|
||||||
|
x => x.Eliminato == false,
|
||||||
|
ordinamento: x => x.OrderBy(y => y.Descrizione)))
|
||||||
|
.Select(x => (MacchinarioViewModel)x).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
32
TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs
Normal file
32
TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using TecniStamp.Domain;
|
||||||
|
|
||||||
|
namespace TecniStamp.Model;
|
||||||
|
|
||||||
|
public class MacchinarioViewModel : BaseViewModel
|
||||||
|
{
|
||||||
|
[Required(ErrorMessage = "La descrizione è obbligatoria")]
|
||||||
|
public string Descrizione { get; set; }
|
||||||
|
|
||||||
|
public override void Validate()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator MacchinarioViewModel(Macchinario model)
|
||||||
|
{
|
||||||
|
return model == null
|
||||||
|
? null
|
||||||
|
: new MacchinarioViewModel()
|
||||||
|
{
|
||||||
|
Id = model.Id,
|
||||||
|
Descrizione = model.Descrizione
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public Macchinario Map(Macchinario model)
|
||||||
|
{
|
||||||
|
model.Descrizione = Descrizione;
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user