diff --git a/TecniStamp/TecniStamp.Service/ManagerService.cs b/TecniStamp/TecniStamp.Service/ManagerService.cs
index 73b1f35..a3a5f06 100644
--- a/TecniStamp/TecniStamp.Service/ManagerService.cs
+++ b/TecniStamp/TecniStamp.Service/ManagerService.cs
@@ -4,7 +4,8 @@ namespace TecniStamp.Service;
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;
SezioneService = sezioneService;
diff --git a/TecniStamp/TecniStamp.sln b/TecniStamp/TecniStamp.sln
index a124587..7fd0a6f 100644
--- a/TecniStamp/TecniStamp.sln
+++ b/TecniStamp/TecniStamp.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.14.36915.13 d17.14
+VisualStudioVersion = 17.14.36915.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TecniStamp", "TecniStamp\TecniStamp.csproj", "{CFA3D1CC-936B-4DF5-B2AE-A46A8616501A}"
EndProject
diff --git a/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinario.razor b/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari.razor
similarity index 88%
rename from TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinario.razor
rename to TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari.razor
index 492e450..00d3aaa 100644
--- a/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinario.razor
+++ b/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari.razor
@@ -28,15 +28,13 @@
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
Data="@macchinari" ColumnWidth="300px" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
-
-
-
-
+
+
-
-
-
+
+
+
diff --git a/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari_Edit.razor b/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari_Edit.razor
new file mode 100644
index 0000000..8844f05
--- /dev/null
+++ b/TecniStamp/TecniStamp/Components/Pages/Anagrafiche/Macchinari_Edit.razor
@@ -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
+
+@rendermode InteractiveServer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nome
+
+
+
+
+
+ Descrizione
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@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 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");
+ }
+
+ ///
+ /// Salva il macchinario: recupera o crea il modello, applica le modifiche dalla UI
+ /// usando l’ID dell’utente autenticato.
+ ///
+ 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" });
+ }
+ }
+
+ ///
+ /// Torna all’elenco macchinari senza applicare altre azioni.
+ ///
+ private void backToHome()
+ {
+ _navManager.NavigateTo("/Anagrafiche/Macchinari");
+ }
+
+}
diff --git a/TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs b/TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs
index 6c2674f..1010586 100644
--- a/TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs
+++ b/TecniStamp/TecniStamp/Model/MacchinarioViewModel.cs
@@ -5,6 +5,9 @@ namespace TecniStamp.Model;
public class MacchinarioViewModel : BaseViewModel
{
+ [Required(ErrorMessage = "Il nome è obbligatorio")]
+ public string Nome { get; set; }
+
[Required(ErrorMessage = "La descrizione è obbligatoria")]
public string Descrizione { get; set; }
@@ -19,13 +22,15 @@ public class MacchinarioViewModel : BaseViewModel
: new MacchinarioViewModel()
{
Id = model.Id,
- Descrizione = model.Descrizione
+ Descrizione = model.Descrizione,
+ Nome = model.Nome,
};
}
public Macchinario Map(Macchinario model)
{
model.Descrizione = Descrizione;
+ model.Nome = Nome;
return model;
}