commit macchinario
This commit is contained in:
@ -4,7 +4,8 @@ namespace TecniStamp.Service;
|
|||||||
|
|
||||||
public class ManagerService : IManagerService
|
public class ManagerService : IManagerService
|
||||||
{
|
{
|
||||||
public ManagerService(IUserService userService, ISezioneService sezioneService, IPermissionService permissionService, IRuoloService ruoloService, IFeatureService featureService, IMacchinarioService macchinarioService)
|
public ManagerService(IUserService userService, ISezioneService sezioneService, IPermissionService permissionService, IRuoloService ruoloService,
|
||||||
|
IFeatureService featureService, IMacchinarioService macchinarioService, ICommessaService commessaService)
|
||||||
{
|
{
|
||||||
UtenteService = userService;
|
UtenteService = userService;
|
||||||
SezioneService = sezioneService;
|
SezioneService = sezioneService;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.14.36915.13 d17.14
|
VisualStudioVersion = 17.14.36915.13
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TecniStamp", "TecniStamp\TecniStamp.csproj", "{CFA3D1CC-936B-4DF5-B2AE-A46A8616501A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TecniStamp", "TecniStamp\TecniStamp.csproj", "{CFA3D1CC-936B-4DF5-B2AE-A46A8616501A}"
|
||||||
EndProject
|
EndProject
|
||||||
|
|||||||
@ -28,15 +28,13 @@
|
|||||||
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
|
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
|
||||||
Data="@macchinari" ColumnWidth="300px" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
|
Data="@macchinari" ColumnWidth="300px" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
|
||||||
<Columns>
|
<Columns>
|
||||||
<RadzenDataGridColumn Property="@nameof(UserViewModel.Nome)" Title="Nome" Width="160px" />
|
<RadzenDataGridColumn Property="@nameof(MacchinarioViewModel.Nome)" Title="Nome" Width="160px" />
|
||||||
<RadzenDataGridColumn Property="@nameof(UserViewModel.Cognome)" Title="Cognome" Width="160px" />
|
<RadzenDataGridColumn Property="@nameof(MacchinarioViewModel.Descrizione)" Title="Descrizione" 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">
|
<RadzenDataGridColumn Context="order" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="200px">
|
||||||
<Template Context="user">
|
<Template Context="macchinario">
|
||||||
<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="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" class="rz-my-1 rz-ms-1" Click="@(args => EditRow(macchinario))" @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" />
|
<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(macchinario))" @onclick:stopPropagation="true" />
|
||||||
</Template>
|
</Template>
|
||||||
</RadzenDataGridColumn>
|
</RadzenDataGridColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
@ -0,0 +1,122 @@
|
|||||||
|
@page "/Anagrafiche/Macchinari/Modifica"
|
||||||
|
@page "/Anagrafiche/Macchinari/Modifica/{MacchinarioId:guid}"
|
||||||
|
@using TecniStamp.Domain
|
||||||
|
@using TecniStamp.Model
|
||||||
|
@using TecniStamp.Model.Common
|
||||||
|
@using TecniStamp.Utils
|
||||||
|
|
||||||
|
<PageTitle>@pageTitle</PageTitle>
|
||||||
|
<Breadcrumb Items="BreadcrumbList" />
|
||||||
|
@rendermode InteractiveServer
|
||||||
|
|
||||||
|
<div class="container-fluid h-100 mt-5">
|
||||||
|
<div class="row justify-content-start">
|
||||||
|
<div class="row row-cards">
|
||||||
|
<div class="col">
|
||||||
|
<h2 class="page-title">@pageTitle</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row row-cards">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row g-5">
|
||||||
|
<EditForm Model="Model" OnValidSubmit="onMacchinarioSave" FormName="editMacchinarioForm">
|
||||||
|
<DataAnnotationsValidator />
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-3 mb-3">
|
||||||
|
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Nome</RadzenText>
|
||||||
|
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@Model.Nome" />
|
||||||
|
<ValidationMessage For="@(() => Model.Nome)" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-3 mb-3">
|
||||||
|
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Descrizione</RadzenText>
|
||||||
|
<RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@Model.Descrizione" />
|
||||||
|
<ValidationMessage For="@(() => Model.Descrizione)" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4 mb-3">
|
||||||
|
<button type="button" class="btn btn-default w-100" @onclick="backToHome">
|
||||||
|
Annulla
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-4 mb-3">
|
||||||
|
<button type="submit" class="btn btn-primary w-100">
|
||||||
|
Salva
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</EditForm>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
[Parameter] public Guid? MacchinarioId { get; set; }
|
||||||
|
|
||||||
|
public MacchinarioViewModel Model { get; set; } = new();
|
||||||
|
private string pageTitle => Model?.Id == Guid.Empty ? "Nuovo Macchinario" : $"Modifica Macchinario {Model.Nome}";
|
||||||
|
|
||||||
|
public List<BreadcrumbViewModel> BreadcrumbList { get; set; } = new();
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
|
||||||
|
Model = MacchinarioId.GetValueOrDefault() == Guid.Empty
|
||||||
|
? new MacchinarioViewModel()
|
||||||
|
: await _managerService.MacchinarioService.RicercaPer(x => x.Id == MacchinarioId);
|
||||||
|
|
||||||
|
BreadcrumbList = await BreadcrumbUtils.BuildBreadcrumbByFeature(_managerService, "Macchinari_Insert", "Modifica", "/Anagrafiche/Macchinari");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Salva il macchinario: recupera o crea il modello, applica le modifiche dalla UI
|
||||||
|
/// usando l’ID dell’utente autenticato.
|
||||||
|
/// </summary>
|
||||||
|
private async Task onMacchinarioSave()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var state = await _auth.GetAuthenticationStateAsync();
|
||||||
|
var idClaim = state.User.FindFirst("UserId")?.Value;
|
||||||
|
if (string.IsNullOrEmpty(idClaim))
|
||||||
|
{
|
||||||
|
// gestisci errore (utente non autenticato o claim mancante)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var model = await _managerService.MacchinarioService.RicercaPer(x => x.Id == Model.Id, solaLettura: false)
|
||||||
|
?? new Macchinario();
|
||||||
|
|
||||||
|
model = Model.Map(model);
|
||||||
|
|
||||||
|
var macchinarioSalvato = await _managerService.MacchinarioService.Salva(model, Guid.Parse(idClaim));
|
||||||
|
_navManager.NavigateTo($"/Anagrafiche/Macchinari");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
await _dialogService.Alert("Si è verificato un'errore", "Errore", new AlertOptions() { OkButtonText = "Continua" });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Torna all’elenco macchinari senza applicare altre azioni.
|
||||||
|
/// </summary>
|
||||||
|
private void backToHome()
|
||||||
|
{
|
||||||
|
_navManager.NavigateTo("/Anagrafiche/Macchinari");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -5,6 +5,9 @@ namespace TecniStamp.Model;
|
|||||||
|
|
||||||
public class MacchinarioViewModel : BaseViewModel
|
public class MacchinarioViewModel : BaseViewModel
|
||||||
{
|
{
|
||||||
|
[Required(ErrorMessage = "Il nome è obbligatorio")]
|
||||||
|
public string Nome { get; set; }
|
||||||
|
|
||||||
[Required(ErrorMessage = "La descrizione è obbligatoria")]
|
[Required(ErrorMessage = "La descrizione è obbligatoria")]
|
||||||
public string Descrizione { get; set; }
|
public string Descrizione { get; set; }
|
||||||
|
|
||||||
@ -19,13 +22,15 @@ public class MacchinarioViewModel : BaseViewModel
|
|||||||
: new MacchinarioViewModel()
|
: new MacchinarioViewModel()
|
||||||
{
|
{
|
||||||
Id = model.Id,
|
Id = model.Id,
|
||||||
Descrizione = model.Descrizione
|
Descrizione = model.Descrizione,
|
||||||
|
Nome = model.Nome,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public Macchinario Map(Macchinario model)
|
public Macchinario Map(Macchinario model)
|
||||||
{
|
{
|
||||||
model.Descrizione = Descrizione;
|
model.Descrizione = Descrizione;
|
||||||
|
model.Nome = Nome;
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user