From dcdbf100301d72f0f3fc9ce99a5a488c49441277 Mon Sep 17 00:00:00 2001 From: Gianmarco Date: Mon, 2 Feb 2026 16:51:26 +0100 Subject: [PATCH 1/2] Commesse --- .../TecniStamp.Service/CommessaService.cs | 13 +++++ .../Interfaces/ICommessaService.cs | 8 +++ .../Interfaces/IManagerService.cs | 1 + .../Interfaces/IRuoloService.cs | 1 - .../TecniStamp.Service/ManagerService.cs | 4 +- .../Components/Pages/Commesse/Commesse.razor | 5 ++ .../Components/Widget/HomeTile.razor | 2 +- .../Model/Commesse/ClienteViewModel.cs | 50 +++++++++++++++++++ .../Model/Commesse/CommessaViewModel.cs | 44 ++++++++++++++++ .../Model/Commesse/ComuneIstatViewModel.cs | 35 +++++++++++++ .../Model/Commesse/ProvinciaIstatViewModel.cs | 26 ++++++++++ 11 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 TecniStamp/TecniStamp.Service/CommessaService.cs create mode 100644 TecniStamp/TecniStamp.Service/Interfaces/ICommessaService.cs create mode 100644 TecniStamp/TecniStamp/Model/Commesse/ClienteViewModel.cs create mode 100644 TecniStamp/TecniStamp/Model/Commesse/CommessaViewModel.cs create mode 100644 TecniStamp/TecniStamp/Model/Commesse/ComuneIstatViewModel.cs create mode 100644 TecniStamp/TecniStamp/Model/Commesse/ProvinciaIstatViewModel.cs diff --git a/TecniStamp/TecniStamp.Service/CommessaService.cs b/TecniStamp/TecniStamp.Service/CommessaService.cs new file mode 100644 index 0000000..5ca7656 --- /dev/null +++ b/TecniStamp/TecniStamp.Service/CommessaService.cs @@ -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 CommessaService : TService, ICommessaService +{ + public CommessaService(ITecniStampUnitOfWork unitOfWork) : base(unitOfWork) + { + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/Interfaces/ICommessaService.cs b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaService.cs new file mode 100644 index 0000000..8a1ae69 --- /dev/null +++ b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaService.cs @@ -0,0 +1,8 @@ +using OAService.Service.Servizi.Interfacce; +using TecniStamp.Domain; + +namespace TecniStamp.Service.Interfaces; + +public interface ICommessaService : ITService +{ +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs b/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs index d186e4e..66f6c3e 100644 --- a/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs +++ b/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs @@ -2,6 +2,7 @@ public interface IManagerService { + ICommessaService CommessaService { get; set; } IFeatureService FeatureService { get; set; } IPermissionService PermissionService { get; set; } IRuoloService RuoloService{ get; set; } diff --git a/TecniStamp/TecniStamp.Service/Interfaces/IRuoloService.cs b/TecniStamp/TecniStamp.Service/Interfaces/IRuoloService.cs index 0caf075..c1deb4a 100644 --- a/TecniStamp/TecniStamp.Service/Interfaces/IRuoloService.cs +++ b/TecniStamp/TecniStamp.Service/Interfaces/IRuoloService.cs @@ -1,4 +1,3 @@ -using OAService.Service.Repository; using OAService.Service.Servizi.Interfacce; using TecniStamp.Domain; diff --git a/TecniStamp/TecniStamp.Service/ManagerService.cs b/TecniStamp/TecniStamp.Service/ManagerService.cs index be8991f..491b23f 100644 --- a/TecniStamp/TecniStamp.Service/ManagerService.cs +++ b/TecniStamp/TecniStamp.Service/ManagerService.cs @@ -4,15 +4,17 @@ namespace TecniStamp.Service; 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, ICommessaService commessaService) { UtenteService = userService; SezioneService = sezioneService; PermissionService = permissionService; RuoloService = ruoloService; FeatureService = featureService; + CommessaService = commessaService; } + public ICommessaService CommessaService { get; set; } public IFeatureService FeatureService { get; set; } public IPermissionService PermissionService { get; set; } public IRuoloService RuoloService { get; set; } diff --git a/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse.razor b/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse.razor index 4a6a55b..fcab76a 100644 --- a/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse.razor +++ b/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse.razor @@ -1,5 +1,6 @@ @page "/commesse" @using Microsoft.EntityFrameworkCore +@using TecniStamp.Model.Commesse @using TecniStamp.Model.Common @using TecniStamp.Utils @@ -8,11 +9,15 @@ @code { public List BreadcrumbList { get; set; } = new(); + public List CommesseList { get; set; } = new(); protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); BreadcrumbList = await BreadcrumbUtils.BuildBreadcrumbByFeature(_managerService, "Commesse_Info"); + + CommesseList = (await _managerService.CommessaService.RicercaQueryable(x => x.Eliminato == false)) + .Select(x => (CommessaViewModel)x).ToList(); } } \ No newline at end of file diff --git a/TecniStamp/TecniStamp/Components/Widget/HomeTile.razor b/TecniStamp/TecniStamp/Components/Widget/HomeTile.razor index 4182d5a..01ab815 100644 --- a/TecniStamp/TecniStamp/Components/Widget/HomeTile.razor +++ b/TecniStamp/TecniStamp/Components/Widget/HomeTile.razor @@ -4,7 +4,7 @@

- +

@Model.Text diff --git a/TecniStamp/TecniStamp/Model/Commesse/ClienteViewModel.cs b/TecniStamp/TecniStamp/Model/Commesse/ClienteViewModel.cs new file mode 100644 index 0000000..4f0c68f --- /dev/null +++ b/TecniStamp/TecniStamp/Model/Commesse/ClienteViewModel.cs @@ -0,0 +1,50 @@ +using TecniStamp.Domain; + +namespace TecniStamp.Model.Commesse; + +public class ClienteViewModel : BaseViewModel +{ + public string RagioneSociale { get; set; } + public string PartitaIva { get; set; } + public string Paese { get; set; } + public string Telefono { get; set; } + public string Email { get; set; } + public string Indirizzo { get; set; } + public string CAP { get; set; } + public string Citta { get; set; } + public string NumeroCivico { get; set; } + public string Via { get; set; } + public string Provincia { get; set; } + public string Note { get; set; } + public Guid? ComuneId { get; set; } + public ComuneIstatViewModel Comune { get; set; } + + public override void Validate() + { + + } + + public static implicit operator ClienteViewModel(Cliente model) + { + return model == null + ? null + : new ClienteViewModel() + { + RagioneSociale = model.RagioneSociale, + PartitaIva = model.PartitaIva, + Paese = model.Paese, + Telefono = model.Telefono, + Email = model.Email, + Indirizzo = model.Indirizzo, + CAP = model.CAP, + Citta = model.Citta, + NumeroCivico = model.NumeroCivico, + Via = model.Via, + Provincia = model.Provincia, + Note = model.Note, + ComuneId = model.ComuneId, + Comune = model.Comune, + Id = model.Id + }; + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp/Model/Commesse/CommessaViewModel.cs b/TecniStamp/TecniStamp/Model/Commesse/CommessaViewModel.cs new file mode 100644 index 0000000..688bd8d --- /dev/null +++ b/TecniStamp/TecniStamp/Model/Commesse/CommessaViewModel.cs @@ -0,0 +1,44 @@ +using TecniStamp.Domain; + +namespace TecniStamp.Model.Commesse; + +public class CommessaViewModel : BaseViewModel +{ + public string CodiceCommessa { get; set; } + public int AnnoCommessa { get; set; } + public Guid? ClienteId { get; set; } + public ClienteViewModel Cliente { get; set; } + public string RiferimentoCliente { get; set; } + public string OrdineNr { get; set; } + public decimal? OreTotali { get; set; } + public DateTime DataOrdine { get; set; } + public DateTime DataConsegnaPrevista { get; set; } + public DateTime DataConsegna { get; set; } + public CommessaStato Stato { get; set; } + + public override void Validate() + { + + } + + public static implicit operator CommessaViewModel(Commessa model) + { + return model == null + ? null + : new CommessaViewModel() + { + Stato = model.Stato, + CodiceCommessa = model.CodiceCommessa, + AnnoCommessa = model.AnnoCommessa, + ClienteId = model.ClienteId, + Cliente = model.Cliente, + RiferimentoCliente = model.RiferimentoCliente, + OrdineNr = model.OrdineNr, + OreTotali = model.OreTotali, + DataOrdine = model.DataOrdine, + DataConsegnaPrevista = model.DataConsegnaPrevista, + DataConsegna = model.DataConsegna, + Id = model.Id + }; + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp/Model/Commesse/ComuneIstatViewModel.cs b/TecniStamp/TecniStamp/Model/Commesse/ComuneIstatViewModel.cs new file mode 100644 index 0000000..e4f9749 --- /dev/null +++ b/TecniStamp/TecniStamp/Model/Commesse/ComuneIstatViewModel.cs @@ -0,0 +1,35 @@ +using TecniStamp.Domain; + +namespace TecniStamp.Model.Commesse; + +public class ComuneIstatViewModel : BaseViewModel +{ + public string Istat { get; set; } + public string Comune { get; set; } + public string Regione { get; set; } + public string Provincia { get; set; } + public string Prefisso { get; set; } + public string CodFisco { get; set; } + public ProvinciaIstatViewModel ProvinciaIstat { get; set; } + public override void Validate() + { + + } + + public static implicit operator ComuneIstatViewModel(ComuneIstat model) + { + return model == null + ? null + : new ComuneIstatViewModel() + { + Provincia = model.Provincia, + CodFisco = model.CodFisco, + Prefisso = model.Prefisso, + Regione = model.Regione, + Istat = model.Istat, + Comune = model.Comune, + ProvinciaIstat = model.ProvinciaIstat, + Id = model.Id + }; + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp/Model/Commesse/ProvinciaIstatViewModel.cs b/TecniStamp/TecniStamp/Model/Commesse/ProvinciaIstatViewModel.cs new file mode 100644 index 0000000..d26e83a --- /dev/null +++ b/TecniStamp/TecniStamp/Model/Commesse/ProvinciaIstatViewModel.cs @@ -0,0 +1,26 @@ +using TecniStamp.Domain; + +namespace TecniStamp.Model.Commesse; + +public class ProvinciaIstatViewModel : BaseViewModel +{ + public string Sigla { get; set; } + public string Provincia { get; set; } + + public override void Validate() + { + + } + + public static implicit operator ProvinciaIstatViewModel(ProvinciaIstat model) + { + return model == null + ? null + : new ProvinciaIstatViewModel() + { + Provincia = model.Provincia, + Sigla = model.Sigla, + Id = model.Id + }; + } +} \ No newline at end of file From cf032c34549e6b24f2f18ff75347b57deb9f6eb2 Mon Sep 17 00:00:00 2001 From: Gianmarco Date: Mon, 2 Feb 2026 16:54:08 +0100 Subject: [PATCH 2/2] Nome su macchinario --- TecniStamp/TecniStamp.Domain/Macchinario.cs | 9 +- ...260202155351_NomeSuMacchinario.Designer.cs | 834 ++++++++++++++++++ .../20260202155351_NomeSuMacchinario.cs | 101 +++ .../TecniStampDbContextModelSnapshot.cs | 8 +- 4 files changed, 944 insertions(+), 8 deletions(-) create mode 100644 TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.Designer.cs create mode 100644 TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.cs diff --git a/TecniStamp/TecniStamp.Domain/Macchinario.cs b/TecniStamp/TecniStamp.Domain/Macchinario.cs index 52918e1..f523742 100644 --- a/TecniStamp/TecniStamp.Domain/Macchinario.cs +++ b/TecniStamp/TecniStamp.Domain/Macchinario.cs @@ -4,9 +4,10 @@ namespace TecniStamp.Domain; public class Macchinario : EntitaBase { - public string Descrizione { get; set; } + public string Nome { get; set; } + public string? Descrizione { get; set; } public bool Interscambio { get; set; } - public string ConfigurazionePercorso { get; set; } - public string ConfigurazioneJSON { get; set; } - public string CodiceEsterno { get; set; } + public string? ConfigurazionePercorso { get; set; } + public string? ConfigurazioneJSON { get; set; } + public string? CodiceEsterno { get; set; } } \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.Designer.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.Designer.cs new file mode 100644 index 0000000..e0815c6 --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.Designer.cs @@ -0,0 +1,834 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TecniStamp.Infrastructure.DAL.Context; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + [DbContext(typeof(TecniStampDbContext))] + [Migration("20260202155351_NomeSuMacchinario")] + partial class NomeSuMacchinario + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CAP") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ComuneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroCivico") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Paese") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Telefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Via") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ComuneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AnnoCommessa") + .HasColumnType("int"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceCommessa") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataConsegna") + .HasColumnType("datetime2"); + + b.Property("DataConsegnaPrevista") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataOrdine") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("OrdineNr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OreTotali") + .HasColumnType("decimal(18,2)"); + + b.Property("RiferimentoCliente") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Stato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Commessa"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodFisco") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Istat") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Prefisso") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProvinciaIstatId") + .HasColumnType("uniqueidentifier"); + + b.Property("Regione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ProvinciaIstatId"); + + b.ToTable("ComuneIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("SezioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("SezioneId"); + + b.ToTable("Feature"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChiaveEsterna") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Codice") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CodiceColore") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CostoOrario") + .HasColumnType("real"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Sovrapponibile") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Lavorazione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceEsterno") + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazioneJSON") + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazionePercorso") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Interscambio") + .HasColumnType("bit"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Macchinario"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdFeature") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("IdFeature"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Permission"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Sigla") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("ProvinciaIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Ruolo"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Blank") + .HasColumnType("bit"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Icona") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Url") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ParentId"); + + b.ToTable("Sezione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Costo") + .HasColumnType("decimal(18,2)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.HasOne("TecniStamp.Domain.ComuneIstat", "Comune") + .WithMany() + .HasForeignKey("ComuneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Comune"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.HasOne("TecniStamp.Domain.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.ProvinciaIstat", "ProvinciaIstat") + .WithMany() + .HasForeignKey("ProvinciaIstatId"); + + b.Navigation("ProvinciaIstat"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Sezione") + .WithMany("Features") + .HasForeignKey("SezioneId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Sezione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.HasOne("TecniStamp.Domain.Feature", "Feature") + .WithMany() + .HasForeignKey("IdFeature") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Permessi") + .HasForeignKey("RuoloId"); + + b.Navigation("Feature"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Utenti") + .HasForeignKey("RuoloId"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Navigation("Permessi"); + + b.Navigation("Utenti"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Navigation("Features"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.cs new file mode 100644 index 0000000..84a6b36 --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260202155351_NomeSuMacchinario.cs @@ -0,0 +1,101 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + /// + public partial class NomeSuMacchinario : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Descrizione", + table: "Macchinario", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AlterColumn( + name: "ConfigurazionePercorso", + table: "Macchinario", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AlterColumn( + name: "ConfigurazioneJSON", + table: "Macchinario", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AlterColumn( + name: "CodiceEsterno", + table: "Macchinario", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AddColumn( + name: "Nome", + table: "Macchinario", + type: "nvarchar(max)", + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Nome", + table: "Macchinario"); + + migrationBuilder.AlterColumn( + name: "Descrizione", + table: "Macchinario", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "ConfigurazionePercorso", + table: "Macchinario", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "ConfigurazioneJSON", + table: "Macchinario", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "CodiceEsterno", + table: "Macchinario", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs index 2aa3ecf..2a4bb0d 100644 --- a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs @@ -337,15 +337,12 @@ namespace TecniStamp.Infrastructure.Migrations .HasColumnType("uniqueidentifier"); b.Property("CodiceEsterno") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ConfigurazioneJSON") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ConfigurazionePercorso") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("DataCreazione") @@ -355,7 +352,6 @@ namespace TecniStamp.Infrastructure.Migrations .HasColumnType("datetime2"); b.Property("Descrizione") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Eliminato") @@ -370,6 +366,10 @@ namespace TecniStamp.Infrastructure.Migrations b.Property("Interscambio") .HasColumnType("bit"); + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + b.HasKey("Id"); b.HasIndex("IdUtenteCreazione");