diff --git a/StandManager.Domain/Entita/Destinazione.cs b/StandManager.Domain/Entita/Destinazione.cs index 759787f..29c27c6 100644 --- a/StandManager.Domain/Entita/Destinazione.cs +++ b/StandManager.Domain/Entita/Destinazione.cs @@ -10,12 +10,14 @@ public class Destinazione : EntitaBase public Cliente Cliente { get; set; } public string RagioneSociale { get; set; } public string PartitaIva { get; set; } + public string? CodiceFiscale { get; set; } public string? Cap { get; set; } public string? Citta { get; set; } public string? Indirizzo { get; set; } public string? Email { get; set; } public string? EmailInvito { get; set; } public string? NumeroTelefono { get; set; } + public string? Rid { get; set; } [ForeignKey(nameof(Agente))] public Guid? AgenteId { get; set; } diff --git a/StandManager.Domain/Entita/Utente.cs b/StandManager.Domain/Entita/Utente.cs index dfd85ab..78dae3a 100644 --- a/StandManager.Domain/Entita/Utente.cs +++ b/StandManager.Domain/Entita/Utente.cs @@ -15,6 +15,7 @@ public class Utente : EntitaBase public string Password { get; set; } public string Nome { get; set; } public string Cognome { get; set; } + public string? CodiceAgente { get; set; } public override string ToString() { return $"{Nome} {Cognome}"; diff --git a/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.Designer.cs b/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.Designer.cs new file mode 100644 index 0000000..f967b82 --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.Designer.cs @@ -0,0 +1,724 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using StandManager.Infrastructure.DAL.Context; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + [DbContext(typeof(StandManagerDbContext))] + [Migration("20251215131240_CodiceFiscaleSuDest")] + partial class CodiceFiscaleSuDest + { + /// + 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("StandManager.Domain.Entita.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.Property("StatoCliente") + .HasColumnType("int"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceFiscale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Destinazione"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataA") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataDa") + .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("IscrizioneA") + .HasColumnType("datetime2"); + + b.Property("IscrizioneDa") + .HasColumnType("datetime2"); + + b.Property("Luogo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailInvito") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailIscrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Titolo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Evento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("InvitoEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataScan") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EsperienzaConDAC") + .HasColumnType("nvarchar(max)"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("InvitoEventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("Partecipanti") + .HasColumnType("int"); + + b.Property("Provincia") + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("ScanCompleto") + .HasColumnType("bit"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("InvitoEventoId"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("IscrizioneEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + 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("NumeroTelefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("RuoloNote") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Referente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", 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("TipologiaCliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + 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("Username") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Agente"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany("Destinazioni") + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Agente"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("Evento"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany() + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.InvitoEvento", "InvitoEvento") + .WithMany("IscrizioniEvento") + .HasForeignKey("InvitoEventoId"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Cliente"); + + b.Navigation("Destinazione"); + + b.Navigation("Evento"); + + b.Navigation("InvitoEvento"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany("Referenti") + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Destinazione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.Navigation("Destinazioni"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Navigation("Referenti"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Navigation("IscrizioniEvento"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.cs b/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.cs new file mode 100644 index 0000000..a3320bb --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215131240_CodiceFiscaleSuDest.cs @@ -0,0 +1,39 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + /// + public partial class CodiceFiscaleSuDest : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CodiceFiscale", + table: "Destinazione", + type: "nvarchar(max)", + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "Rid", + table: "Destinazione", + type: "nvarchar(max)", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CodiceFiscale", + table: "Destinazione"); + + migrationBuilder.DropColumn( + name: "Rid", + table: "Destinazione"); + } + } +} diff --git a/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.Designer.cs b/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.Designer.cs new file mode 100644 index 0000000..0101db3 --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.Designer.cs @@ -0,0 +1,723 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using StandManager.Infrastructure.DAL.Context; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + [DbContext(typeof(StandManagerDbContext))] + [Migration("20251215131839_CodiceFiscaleNull")] + partial class CodiceFiscaleNull + { + /// + 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("StandManager.Domain.Entita.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.Property("StatoCliente") + .HasColumnType("int"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceFiscale") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Destinazione"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataA") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataDa") + .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("IscrizioneA") + .HasColumnType("datetime2"); + + b.Property("IscrizioneDa") + .HasColumnType("datetime2"); + + b.Property("Luogo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailInvito") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailIscrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Titolo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Evento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("InvitoEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataScan") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EsperienzaConDAC") + .HasColumnType("nvarchar(max)"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("InvitoEventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("Partecipanti") + .HasColumnType("int"); + + b.Property("Provincia") + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("ScanCompleto") + .HasColumnType("bit"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("InvitoEventoId"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("IscrizioneEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + 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("NumeroTelefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("RuoloNote") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Referente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", 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("TipologiaCliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + 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("Username") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Agente"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany("Destinazioni") + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Agente"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("Evento"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany() + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.InvitoEvento", "InvitoEvento") + .WithMany("IscrizioniEvento") + .HasForeignKey("InvitoEventoId"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Cliente"); + + b.Navigation("Destinazione"); + + b.Navigation("Evento"); + + b.Navigation("InvitoEvento"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany("Referenti") + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Destinazione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.Navigation("Destinazioni"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Navigation("Referenti"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Navigation("IscrizioniEvento"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.cs b/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.cs new file mode 100644 index 0000000..27f4e66 --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215131839_CodiceFiscaleNull.cs @@ -0,0 +1,36 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + /// + public partial class CodiceFiscaleNull : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "CodiceFiscale", + table: "Destinazione", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "CodiceFiscale", + table: "Destinazione", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + } + } +} diff --git a/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.Designer.cs b/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.Designer.cs new file mode 100644 index 0000000..972733f --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.Designer.cs @@ -0,0 +1,726 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using StandManager.Infrastructure.DAL.Context; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + [DbContext(typeof(StandManagerDbContext))] + [Migration("20251215135859_CodiceAgente")] + partial class CodiceAgente + { + /// + 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("StandManager.Domain.Entita.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.Property("StatoCliente") + .HasColumnType("int"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AgenteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceFiscale") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailInvito") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("AgenteId"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Destinazione"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataA") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataDa") + .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("IscrizioneA") + .HasColumnType("datetime2"); + + b.Property("IscrizioneDa") + .HasColumnType("datetime2"); + + b.Property("Luogo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailInvito") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateHtmlMailIscrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Titolo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Evento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("InvitoEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cap") + .HasColumnType("nvarchar(max)"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataScan") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("EsperienzaConDAC") + .HasColumnType("nvarchar(max)"); + + b.Property("EventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("InvitoEventoId") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroTelefono") + .HasColumnType("nvarchar(max)"); + + b.Property("Partecipanti") + .HasColumnType("int"); + + b.Property("Provincia") + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("ScanCompleto") + .HasColumnType("bit"); + + b.Property("TipologiaClienteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("EventoId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("InvitoEventoId"); + + b.HasIndex("TipologiaClienteId"); + + b.ToTable("IscrizioneEvento"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DestinazioneId") + .HasColumnType("uniqueidentifier"); + + 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("NumeroTelefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ruolo") + .HasColumnType("int"); + + b.Property("RuoloNote") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("DestinazioneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Referente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", 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("TipologiaCliente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceAgente") + .HasColumnType("nvarchar(max)"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + 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("Username") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Agente"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "Agente") + .WithMany() + .HasForeignKey("AgenteId"); + + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany("Destinazioni") + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Agente"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Evento", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("Evento"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.IscrizioneEvento", b => + { + b.HasOne("StandManager.Domain.Entita.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany() + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Evento", "Evento") + .WithMany() + .HasForeignKey("EventoId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("StandManager.Domain.Entita.InvitoEvento", "InvitoEvento") + .WithMany("IscrizioniEvento") + .HasForeignKey("InvitoEventoId"); + + b.HasOne("StandManager.Domain.Entita.TipologiaCliente", "TipologiaCliente") + .WithMany() + .HasForeignKey("TipologiaClienteId"); + + b.Navigation("Cliente"); + + b.Navigation("Destinazione"); + + b.Navigation("Evento"); + + b.Navigation("InvitoEvento"); + + b.Navigation("TipologiaCliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Referente", b => + { + b.HasOne("StandManager.Domain.Entita.Destinazione", "Destinazione") + .WithMany("Referenti") + .HasForeignKey("DestinazioneId"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Destinazione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.TipologiaCliente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Utente", b => + { + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Cliente", b => + { + b.Navigation("Destinazioni"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b => + { + b.Navigation("Referenti"); + }); + + modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b => + { + b.Navigation("IscrizioniEvento"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.cs b/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.cs new file mode 100644 index 0000000..da4f138 --- /dev/null +++ b/StandManager.Infrastructure/Migrations/20251215135859_CodiceAgente.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace StandManager.Infrastructure.Migrations +{ + /// + public partial class CodiceAgente : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CodiceAgente", + table: "Utente", + type: "nvarchar(max)", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CodiceAgente", + table: "Utente"); + } + } +} diff --git a/StandManager.Infrastructure/Migrations/StandManagerDbContextModelSnapshot.cs b/StandManager.Infrastructure/Migrations/StandManagerDbContextModelSnapshot.cs index caea66f..14794ec 100644 --- a/StandManager.Infrastructure/Migrations/StandManagerDbContextModelSnapshot.cs +++ b/StandManager.Infrastructure/Migrations/StandManagerDbContextModelSnapshot.cs @@ -112,6 +112,9 @@ namespace StandManager.Infrastructure.Migrations b.Property("ClienteId") .HasColumnType("uniqueidentifier"); + b.Property("CodiceFiscale") + .HasColumnType("nvarchar(max)"); + b.Property("DataCreazione") .HasColumnType("datetime2"); @@ -147,6 +150,9 @@ namespace StandManager.Infrastructure.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); + b.Property("Rid") + .HasColumnType("nvarchar(max)"); + b.HasKey("Id"); b.HasIndex("AgenteId"); @@ -458,6 +464,9 @@ namespace StandManager.Infrastructure.Migrations .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property("CodiceAgente") + .HasColumnType("nvarchar(max)"); + b.Property("Cognome") .IsRequired() .HasColumnType("nvarchar(max)"); diff --git a/StandManager/Components/Pages/Management/Clienti.razor b/StandManager/Components/Pages/Management/Clienti.razor index b5d1147..36a3bc6 100644 --- a/StandManager/Components/Pages/Management/Clienti.razor +++ b/StandManager/Components/Pages/Management/Clienti.razor @@ -3,6 +3,7 @@ @using ClosedXML.Excel @using Microsoft.EntityFrameworkCore @using StandManager.Model +@using System.Threading.Tasks @rendermode InteractiveServer @@ -69,7 +70,10 @@ { await base.OnInitializedAsync(); - clienti = (await _managerService.ClienteService.RicercaQueryable(x => x.Eliminato == false, includi: x => x.Include(y => y.Agente))) + clienti = (await _managerService.ClienteService.RicercaQueryable( + x => x.Eliminato == false, + includi: x => x.Include(y => y.Agente), + ordinamento: x => x.OrderBy(y => y.RagioneSociale))) .Select(x => (ClienteViewModel)x).ToList(); } @@ -100,37 +104,16 @@ private async Task onUpload(UploadChangeEventArgs args) { var file = args.Files.FirstOrDefault(); - if (file == null && (!file.Name.EndsWith(".xlsx") || !file.Name.EndsWith(".xls"))) + if (file == null || + !file.Name.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase)) { - await _dialogService.Alert("Il file selezionato non è nel formato corretto.", "Errore"); + await _dialogService.Alert("Sono supportati solo file Excel .xlsx", "Errore"); return; } try { - await using var uploadStream = file.OpenReadStream(10_000_000); - await using var ms = new MemoryStream(); - await uploadStream.CopyToAsync(ms); - ms.Position = 0; - - using var workbook = new XLWorkbook(ms); - var ws = workbook.Worksheet(1); - var usedRange = ws.RangeUsed(); - - var ragioniSociali = ws.RangeUsed().RowsUsed().Skip(1).Select(r => new { Rid = r.Cell(1).GetString(), RagioneSociale = r.Cell(4).GetString() }).Distinct().ToList(); - - foreach (var cliente in ragioniSociali) - { - var righeCliente = usedRange.RowsUsed().Where(r => r.Cell(1).GetString() == cliente.Rid).ToList(); - - var clienteDb = await _managerService.ClienteService.RicercaPer( - x => x.Rid == cliente.Rid && x.Eliminato == false, - includi: x => x.Include(i => i.Destinazioni), - solaLettura: false) ?? new Cliente(); - - clienteDb = mapCliente(clienteDb, righeCliente); - } - - ms.Close(); + // await using var uploadStream = file.OpenReadStream(10_000_000); + await _dialogService.OpenAsync("Importazione clienti e destinazioni", new Dictionary() { { "args", args } }); } catch (Exception ex) { @@ -138,13 +121,4 @@ await _dialogService.Alert("Si è verificato un errore durante l'importazione del file.", "Errore"); } } - - private Cliente mapCliente(Cliente model, List rows) - { - var firstRow = rows.First(); - model.Rid = firstRow.Cell(1).GetString(); - model.RagioneSociale = firstRow.Cell(4).GetString(); - - return model; - } } diff --git a/StandManager/Components/Pages/Management/Clienti_Edit.razor b/StandManager/Components/Pages/Management/Clienti_Edit.razor index c6caeaa..ac5cedd 100644 --- a/StandManager/Components/Pages/Management/Clienti_Edit.razor +++ b/StandManager/Components/Pages/Management/Clienti_Edit.razor @@ -184,7 +184,7 @@ { Resizable = false, Draggable = false, - Width = "700px" + Width = "900px" }; /// diff --git a/StandManager/Components/Pages/Management/Clienti_Import.razor b/StandManager/Components/Pages/Management/Clienti_Import.razor new file mode 100644 index 0000000..5a69efa --- /dev/null +++ b/StandManager/Components/Pages/Management/Clienti_Import.razor @@ -0,0 +1,91 @@ +@using ClosedXML.Excel +@using Microsoft.EntityFrameworkCore +@attribute [Authorize] + +@rendermode InteractiveServer + +@inject AuthenticationStateProvider auth + + + + + +@code { + [CascadingParameter] private Dialog _dialog { get; set; } + [Parameter] public UploadChangeEventArgs args { get; set; } + + private int clientiTotali { get; set; } = 0; + private int counter { get; set; } = 0; + private string counterLabel { get; set; } = string.Empty; + + protected override async Task OnInitializedAsync() + { + base.OnInitializedAsync(); + var file = args.Files.FirstOrDefault(); + await using var uploadStream = file.OpenReadStream(10_000_000); + var idClaim = await MembershipUtils.GetUserId(auth); + + await using var ms = new MemoryStream(); + await uploadStream.CopyToAsync(ms); + ms.Position = 0; + + using var workbook = new XLWorkbook(ms); + var ws = workbook.Worksheet(1); + var usedRange = ws.RangeUsed(); + + var ragioniSociali = ws.RangeUsed().RowsUsed().Skip(1).Select(r => new { Rid = r.Cell(1).GetString(), RagioneSociale = r.Cell(4).GetString() }).Distinct().ToList(); + clientiTotali = ragioniSociali.Count; + counterLabel = " di " + clientiTotali; + + foreach (var cliente in ragioniSociali) + { + var righeCliente = usedRange.RowsUsed().Where(r => r.Cell(1).GetString() == cliente.Rid).ToList(); + + var clienteDb = await _managerService.ClienteService.RicercaPer( + x => x.Rid == cliente.Rid && x.Eliminato == false, + includi: x => x.Include(i => i.Destinazioni), + solaLettura: false) ?? new Cliente(); + + clienteDb = await mapCliente(clienteDb, righeCliente); + await _managerService.ClienteService.Salva(clienteDb, idClaim); + counter += 1; + StateHasChanged(); + } + + ms.Close(); + _dialogService.Close(); + } + + private async Task mapCliente(Cliente model, List rows) + { + var idClaim = await MembershipUtils.GetUserId(auth); + var firstRow = rows.First(); + model.Rid = firstRow.Cell(1).GetString(); + model.RagioneSociale = firstRow.Cell(4).GetString(); + model.PartitaIva = firstRow.Cell(5).GetString(); + model.Destinazioni ??= new(); + foreach (var destinazioneRiga in rows) + { + var destinazione = model.Destinazioni.FirstOrDefault(x => x.Rid == destinazioneRiga.Cell(2).GetString()) ?? new Destinazione(); + destinazione = mapDestinazione(destinazione, model.Id, destinazioneRiga); + if (destinazione.Id == Guid.Empty) + model.Destinazioni.Add(destinazione); + } + return model; + } + + private Destinazione mapDestinazione(Destinazione model, Guid clienteId, IXLRangeRow? row) + { + model.Rid = row.Cell(2).GetString(); + model.RagioneSociale = row.Cell(7).GetString(); + model.PartitaIva = row.Cell(5).GetString(); + model.ClienteId = clienteId; + model.Indirizzo = $"{row.Cell(8).GetString()} {row.Cell(9).GetString()}"; + model.Cap = row.Cell(15).GetString(); + model.Citta = row.Cell(11).GetString(); + model.Email = row.Cell(21).GetString(); + model.EmailInvito = row.Cell(21).GetString(); + model.NumeroTelefono = row.Cell(16).GetString(); + return model; + } +}