Ricerca del cliente su PIva

This commit is contained in:
2025-12-16 11:04:11 +01:00
parent 6db8c7b938
commit 0fe46a52ce
15 changed files with 2060 additions and 238 deletions

View File

@ -15,4 +15,5 @@ public class InvitoEvento : EntitaBase
[InverseProperty(nameof(IscrizioneEvento.InvitoEvento))]
public List<IscrizioneEvento> IscrizioniEvento { get; set; }
public string CodiceFornito { get; set; }
}

View File

@ -39,8 +39,7 @@ public class IscrizioneEvento : EntitaBase
public string? EsperienzaConDAC { get; set; }
public RuoloTipo Ruolo { get; set; }
public string? PartitaIva { get; set; }
public DateTime GiornoPresenzaDal { get; set; }
public DateTime GiornoPresenzaAl { get; set; }
public DateTime GiornoPresenza { get; set; }
}
public enum RuoloTipo

View File

@ -0,0 +1,738 @@
// <auto-generated />
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("20251216085742_CodiceInvito")]
partial class CodiceInvito
{
/// <inheritdoc />
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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("AgenteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<string>("Citta")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EmailInvito")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Indirizzo")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<string>("PartitaIva")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Rid")
.HasColumnType("nvarchar(max)");
b.Property<int>("StatoCliente")
.HasColumnType("int");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("AgenteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<string>("Citta")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceFiscale")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EmailInvito")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Indirizzo")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<string>("PartitaIva")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("DataA")
.HasColumnType("datetime2");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime>("DataDa")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<string>("Descrizione")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("IscrizioneA")
.HasColumnType("datetime2");
b.Property<DateTime>("IscrizioneDa")
.HasColumnType("datetime2");
b.Property<string>("Luogo")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TemplateHtmlMailInvito")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TemplateHtmlMailIscrizione")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceFornito")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cognome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Comune")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataScan")
.HasColumnType("datetime2");
b.Property<Guid?>("DestinazioneId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EsperienzaConDAC")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("GiornoPresenzaAl")
.HasColumnType("datetime2");
b.Property<DateTime>("GiornoPresenzaDal")
.HasColumnType("datetime2");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("InvitoEventoId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Note")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<int>("Partecipanti")
.HasColumnType("int");
b.Property<string>("PartitaIva")
.HasColumnType("nvarchar(max)");
b.Property<string>("Provincia")
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<bool>("ScanCompleto")
.HasColumnType("bit");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Cognome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<Guid?>("DestinazioneId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceAgente")
.HasColumnType("nvarchar(max)");
b.Property<string>("Cognome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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
}
}
}

View File

@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace StandManager.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class CodiceInvito : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "CodiceFornito",
table: "InvitoEvento",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CodiceFornito",
table: "InvitoEvento");
}
}
}

View File

@ -0,0 +1,735 @@
// <auto-generated />
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("20251216092931_RinominatoGiornoPresenza")]
partial class RinominatoGiornoPresenza
{
/// <inheritdoc />
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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("AgenteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<string>("Citta")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EmailInvito")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Indirizzo")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<string>("PartitaIva")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Rid")
.HasColumnType("nvarchar(max)");
b.Property<int>("StatoCliente")
.HasColumnType("int");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("AgenteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<string>("Citta")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceFiscale")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EmailInvito")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Indirizzo")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<string>("PartitaIva")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("DataA")
.HasColumnType("datetime2");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime>("DataDa")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<string>("Descrizione")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("IscrizioneA")
.HasColumnType("datetime2");
b.Property<DateTime>("IscrizioneDa")
.HasColumnType("datetime2");
b.Property<string>("Luogo")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TemplateHtmlMailInvito")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TemplateHtmlMailIscrizione")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceFornito")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Cognome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Comune")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataScan")
.HasColumnType("datetime2");
b.Property<Guid?>("DestinazioneId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EsperienzaConDAC")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("GiornoPresenza")
.HasColumnType("datetime2");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("InvitoEventoId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Note")
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<int>("Partecipanti")
.HasColumnType("int");
b.Property<string>("PartitaIva")
.HasColumnType("nvarchar(max)");
b.Property<string>("Provincia")
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<bool>("ScanCompleto")
.HasColumnType("bit");
b.Property<Guid?>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Cognome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<Guid?>("DestinazioneId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("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<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceAgente")
.HasColumnType("nvarchar(max)");
b.Property<string>("Cognome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
b.Property<DateTime?>("DataModifica")
.HasColumnType("datetime2");
b.Property<bool>("Eliminato")
.HasColumnType("bit");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("IdUtenteCreazione")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("IdUtenteModifica")
.HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("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
}
}
}

View File

@ -0,0 +1,40 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace StandManager.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class RinominatoGiornoPresenza : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "GiornoPresenzaAl",
table: "IscrizioneEvento");
migrationBuilder.RenameColumn(
name: "GiornoPresenzaDal",
table: "IscrizioneEvento",
newName: "GiornoPresenza");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "GiornoPresenza",
table: "IscrizioneEvento",
newName: "GiornoPresenzaDal");
migrationBuilder.AddColumn<DateTime>(
name: "GiornoPresenzaAl",
table: "IscrizioneEvento",
type: "datetime2",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
}
}
}

View File

@ -237,6 +237,10 @@ namespace StandManager.Infrastructure.Migrations
b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier");
b.Property<string>("CodiceFornito")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2");
@ -310,10 +314,7 @@ namespace StandManager.Infrastructure.Migrations
b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("GiornoPresenzaAl")
.HasColumnType("datetime2");
b.Property<DateTime>("GiornoPresenzaDal")
b.Property<DateTime>("GiornoPresenza")
.HasColumnType("datetime2");
b.Property<Guid?>("IdUtenteCreazione")

View File

@ -0,0 +1,81 @@
<div class="mb-4">
<!-- Etichetta Principale -->
<label class="form-label text-center mb-3 text-lg font-semibold" style="color: #1F2937; display: block;">
Sei già un nostro cliente?
</label>
<!-- Contenitore Tabler SelectGroup -->
<div class="form-selectgroup form-selectgroup-boxes d-flex w-100" style="display: flex; gap: 1rem;">
<!-- Opzione SI -->
<label class="form-selectgroup-item flex-fill" style="flex: 1 1 auto;">
<input type="radio"
name="clientType"
value="true"
class="form-selectgroup-input"
checked="@(Value == true)"
@onchange="@(() => OnSelectionChange(true))" />
<!-- Label visuale: Applica bordo e sfondo rosso chiaro se selezionato -->
<span class="form-selectgroup-label d-flex align-items-center justify-content-center p-3 h-100 rounded-3"
style="@(Value == true ? "border-color: #D63939; color: #D63939; background-color: rgba(214, 57, 57, 0.05);" : "")">
<span class="me-3 d-flex align-items-center">
<!-- Icona: Rossa se attiva, grigia se inattiva -->
<span class="material-icons-round text-3xl"
style="font-size: 1.875rem; @(Value == true ? "color: #D63939;" : "color: #9CA3AF;")">
<RadzenIcon Icon="check_circle" />
</span>
</span>
<div>
<span class="d-block font-medium text-lg" style="@(Value == true ? "color: #111827;" : "color: #374151;")">
</span>
</div>
</span>
</label>
<!-- Opzione NO -->
<label class="form-selectgroup-item flex-fill" style="flex: 1 1 auto;">
<input type="radio"
name="clientType"
value="false"
class="form-selectgroup-input"
checked="@(Value == false)"
@onchange="@(() => OnSelectionChange(false))" />
<span class="form-selectgroup-label d-flex align-items-center justify-content-center p-3 h-100 rounded-3"
style="@(Value == false ? "border-color: #D63939; color: #D63939; background-color: rgba(214, 57, 57, 0.05);" : "")">
<span class="me-3 d-flex align-items-center">
<span class="material-icons-round text-3xl"
style="font-size: 1.875rem; @(Value == false ? "color: #D63939;" : "color: #9CA3AF;")">
<RadzenIcon Icon="cancel" />
</span>
</span>
<div>
<span class="d-block font-medium text-lg" style="@(Value == false ? "color: #111827;" : "color: #374151;")">
No
</span>
</div>
</span>
</label>
</div>
</div>
@code {
[Parameter]
public bool? Value { get; set; }
[Parameter]
public EventCallback<bool> ValueChanged { get; set; }
private async Task OnSelectionChange(bool selection)
{
Value = selection;
await ValueChanged.InvokeAsync(Value ?? false);
}
}

View File

@ -0,0 +1,211 @@
@using StandManager.Model
@rendermode InteractiveServer
<EditForm Model="iscrizione" OnValidSubmit="onIscrizioneSave" FormName="iscrizioneForm">
<DataAnnotationsValidator />
<div class="col-12">
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Nome" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.Nome" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Nome)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Cognome" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@iscrizione.Cognome" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Cognome)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="E-mail" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Email" @bind-Value="@iscrizione.Email" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Email)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Telefono" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="NumeroTelefono" @bind-Value="@iscrizione.NumeroTelefono" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.NumeroTelefono)" />
</div>
</div>
<div class="row">
<div class="col-4 mb-3">
<RadzenFormField Text="Provincia" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.Provincia" Style="width: 100%" TextProperty="" Placeholder="Seleziona la provincia"
Data="@provinciaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Provincia)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="CAP" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.Cap" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Cap)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="Comune" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.Comune" Style="width: 100%" TextProperty="" Placeholder="Seleziona il comune"
Data="@comuneList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Comune)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Ragione Sociale" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.RagioneSociale" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.RagioneSociale)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Tipologia" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.TipologiaClienteId" TValue="Guid ?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona la tipologia"
Data="@tipologiaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.TipologiaClienteId)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Hai già avuto un'esperienza con DAC?" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.EsperienzaConDAC" Style="width: 100%" TextProperty="" Placeholder="Scegli dal menù"
Data="@esperienzaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.EsperienzaConDAC)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Ruolo" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.RuoloInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona il ruolo"
Data="@ruoloList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.RuoloInt)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Destinazione" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.DestinazioneId" TValue="Guid ?" Style="width: 100%" ValueProperty="Id" TextProperty="RagioneSociale" Placeholder="Seleziona la destinazione"
Data="@destinazioniList" Size="ButtonSize.Small" />
</RadzenFormField>
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Numero di partecipanti" Variant="Variant.Flat" Style="width: 100%;">
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Partecipanti)" />
</div>
</div>
<div class="row">
<div class="col-12 mb-3">
<RadzenFormField Text="Note" Variant="Variant.Flat" Style="width: 100%; border: none !important; box-shadow: none !important; background-color: transparent !important;">
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Note)" />
</div>
</div>
<div class="row">
<div class="col-4 mb-3">
<RadzenFormField Text="Data Iscrizione Dal" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDatePicker @bind-Value=@iscrizione.GiornoPresenza Name="GiornoPresenza" ShowCalendarWeek ShowTime="false" DateFormat="dd/MM/yyyy" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.GiornoPresenza)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<div class="d-flex align-items-center mb-2">
<RadzenCheckBox class="form-check-input" @bind-Value="presaVisionePrivacy" Name="presaVisionePrivacy" TValue="bool" />
<label class="rz-ms-2" for="presaVisionePrivacy" style="cursor: pointer;">
Presa visione dell'informativa Privacy* (<a href="/" target="_blank">leggi</a>)
</label>
</div>
<div class="d-flex align-items-center">
<RadzenCheckBox class="form-check-input" @bind-Value="presaVisioneDatiPersonali" Name="presaVisioneDatiPersonali" TValue="bool" />
<label class="rz-ms-2" for="presaVisioneDatiPersonali" style="cursor: pointer;">
Autorizzazione al trattamento dati* (<a href="/" target="_blank">leggi</a>)
</label>
</div>
</div>
<div class="col-3 mb-3">
<button type="submit" class="btn btn-danger w-100" disabled="@(!presaVisionePrivacy || !presaVisioneDatiPersonali)">
Invia
</button>
</div>
</div>
</div>
</EditForm>
@code {
[Parameter] public InvitoEventoViewModel invito { get; set; }
[SupplyParameterFromForm]
private IscrizioneEventoViewModel iscrizione { get; set; } = new();
private IEnumerable<string> comuneList { get; set; }
private IEnumerable<string> provinciaList { get; set; }
private IEnumerable<DestinazioneViewModel> destinazioniList { get; set; }
private IEnumerable<LookupViewModel<Guid>> tipologiaList { get; set; }
private IEnumerable<string> esperienzaList { get; set; }
private IEnumerable<LookupViewModel<int>> ruoloList { get; set; }
private bool presaVisionePrivacy { get; set; }
private bool presaVisioneDatiPersonali { get; set; }
protected override async Task OnInitializedAsync()
{
base.OnInitializedAsync();
var eUtils = new EnumUtils();
var destinazioniIds = invito.IscrizioniEvento?.Select(x => x.DestinazioneId).ToList() ?? new List<Guid?>();
destinazioniList = (await _managerService.DestinazioneService.RicercaQueryable(filtro: x => x.ClienteId == invito.ClienteId && !destinazioniIds.Any(y => y == x.Id))).Select(x => (DestinazioneViewModel)x).ToList();
comuneList = new List<string>() { "Brescia" };
provinciaList = new List<string>() { "BS" };
esperienzaList = new List<string>() { "Si", "No" };
tipologiaList = (await _managerService.TipologiaClienteService.RicercaQueryable(x => x.Eliminato == false, ordinamento: x => x.OrderBy(y => y.Nome)))
.Select(x => new LookupViewModel<Guid>(x.Id, x.Nome)).ToList();
ruoloList = eUtils.GetEnumList<RuoloTipo>();
}
private async Task onIscrizioneSave()
{
var model = new IscrizioneEvento()
{
EventoId = invito.EventoId,
InvitoEventoId = invito.Id,
ClienteId = invito.ClienteId,
DestinazioneId = iscrizione.DestinazioneId,
TipologiaClienteId = iscrizione.TipologiaClienteId
};
if (invito.EventoId != Guid.Empty && iscrizione.DestinazioneId == Guid.Empty)
{
_dialogService.Alert("Selezionare una destinazione valida.", "Attenzione");
return;
}
model = iscrizione.Map(model);
await _managerService.IscrizioneEventoService.Salva(model);
_navManager.NavigateTo($"/Grazie");
}
public void SetDatiCliente()
{
iscrizione.DestinazioneId = invito.DestinazioneId;
iscrizione.ClienteId = invito.ClienteId;
iscrizione.RagioneSociale = invito.RagioneSociale;
}
}

View File

@ -9,15 +9,15 @@
Capitale Sociale € 3.000.000,00 i.v.<br />
</div>
<div class="col-4 text-left">
<i class="fa-regular fa-map"></i><b> Sede legale e amministrativa</b><br />
<b><i class="fa-regular fa-map footer-icon"></i> Sede legale e amministrativa</b><br />
Via G.Marconi, n.15 - 25020 Flero (BS)<br />
<i class="fa-solid fa-phone"></i><b> Tel. +39 030 256 8211</b><br />
<i class="fa-regular fa-envelope"></i><b> info@gruppodac.eu</b>
<b><i class="fa-solid fa-phone footer-icon"></i> Tel. +39 030 256 8211</b><br />
<b><i class="fa-regular fa-envelope footer-icon"></i> info@gruppodac.eu</b>
</div>
<div class="col-4 text-center">
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-facebook"></i></a>
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-instagram"></i></a>
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-youtube"></i></a>
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-facebook footer-icon"></i></a>
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-instagram footer-icon"></i></a>
<a href="#" class="text-white mx-2 text-decoration-none" aria-label="Button"><i class="fa-brands fa-youtube footer-icon"></i></a>
</div>
</div>
</div>

View File

@ -0,0 +1,52 @@
@page "/Grazie"
@inject NavigationManager Navigation
<div class="page page-center">
<div class="container container-tight py-4">
<div class="card card-md">
<div class="card-body text-center py-4 p-sm-5">
<div class="mb-4">
<!-- Icona Successo -->
<div class="avatar avatar-xl rounded-circle bg-primary-lt text-primary mb-2">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M5 12l5 5l10 -10"></path>
</svg>
</div>
</div>
<h1 class="mt-2">Ti aspettiamo!</h1>
<p class="text-secondary">
Controlla la tua email per verificare di aver ricevuto il QR code di invito.
</p>
</div>
<div class="hr-text hr-text-center hr-text-spaceless"></div>
<div class="card-body">
<button class="btn btn-primary w-100" @onclick="goToHome">
Torna alla home
</button>
<div class="text-center text-secondary mt-3">
<a href="#" class="text-secondary" style="text-decoration: none;">Hai bisogno d'aiuto?</a>
</div>
</div>
</div>
</div>
</div>
<style>
:root {
--tblr-primary: #D63939;
--tblr-primary-rgb: 214, 57, 57;
}
.bg-primary-lt {
background-color: rgba(214, 57, 57, 0.1) !important;
color: #D63939 !important;
}
</style>
@code {
private void goToHome()
{
Navigation.NavigateTo("/");
}
}

View File

@ -57,171 +57,7 @@
{
@if (destinazioniList.Count() > 0)
{
<EditForm Model="iscrizione" OnValidSubmit="onIscrizioneSave" FormName="iscrizioneForm">
<DataAnnotationsValidator />
<div class="col-12">
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Nome" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.Nome" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Nome)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Cognome" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@iscrizione.Cognome" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Cognome)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="E-mail" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Email" @bind-Value="@iscrizione.Email" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Email)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Telefono" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="NumeroTelefono" @bind-Value="@iscrizione.NumeroTelefono" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.NumeroTelefono)" />
</div>
</div>
<div class="row">
<div class="col-4 mb-3">
<RadzenFormField Text="Provincia" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.Provincia" Style="width: 100%" TextProperty="" Placeholder="Seleziona la provincia"
Data="@provinciaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Provincia)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="CAP" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.Cap" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Cap)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="Comune" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.Comune" Style="width: 100%" TextProperty="" Placeholder="Seleziona il comune"
Data="@comuneList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Comune)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Ragione Sociale" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.RagioneSociale" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.RagioneSociale)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Tipologia" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.TipologiaClienteId" TValue="Guid?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona la tipologia"
Data="@tipologiaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.TipologiaClienteId)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Hai già avuto un'esperienza con DAC?" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.EsperienzaConDAC" Style="width: 100%" TextProperty="" Placeholder="Scegli dal menù"
Data="@esperienzaList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.EsperienzaConDAC)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Ruolo" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.RuoloInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona il ruolo"
Data="@ruoloList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.RuoloInt)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenFormField Text="Destinazione" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDropDown @bind-Value="@iscrizione.DestinazioneId" TValue="Guid?" Style="width: 100%" ValueProperty="Id" TextProperty="RagioneSociale" Placeholder="Seleziona la destinazione"
Data="@destinazioniList" Size="ButtonSize.Small" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.DestinazioneId)" />
</div>
<div class="col-6 mb-3">
<RadzenFormField Text="Numero di partecipanti" Variant="Variant.Flat" Style="width: 100%;">
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Partecipanti)" />
</div>
</div>
<div class="row">
<div class="col-12 mb-3">
<RadzenFormField Text="Note" Variant="Variant.Flat" Style="width: 100%; border: none !important; box-shadow: none !important; background-color: transparent !important;">
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.Note)" />
</div>
</div>
<div class="row">
<div class="col-4 mb-3">
<RadzenFormField Text="Data Iscrizione Dal" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDatePicker @bind-Value=@iscrizione.GiornoPresenzaDal Name="GiornoPresenzaDal" ShowCalendarWeek ShowTime="false" DateFormat="dd/MM/yyyy" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.GiornoPresenzaDal)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="Data Iscrizione Al" Variant="Variant.Flat" Style="width: 100%;">
<RadzenDatePicker @bind-Value=@iscrizione.GiornoPresenzaAl Name="GiornoPresenzaAl" ShowCalendarWeek ShowTime="false" DateFormat="dd/MM/yyyy" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.GiornoPresenzaAl)" />
</div>
<div class="col-4 mb-3">
<RadzenFormField Text="Partita IVA" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.PartitaIva" />
</RadzenFormField>
<ValidationMessage For="@(() => iscrizione.PartitaIva)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<div class="d-flex align-items-center mb-2">
<RadzenCheckBox class="form-check-input" @bind-Value="PresaVisionePrivacy" Name="PresaVisionePrivacy" TValue="bool" />
<label class="rz-ms-2" for="PresaVisionePrivacy" style="cursor: pointer;">
Presa visione dell'informativa Privacy* (<a href="/" target="_blank">leggi</a>)
</label>
</div>
<div class="d-flex align-items-center">
<RadzenCheckBox class="form-check-input" @bind-Value="PresaVisioneDatiPersonali" Name="PresaVisioneDatiPersonali" TValue="bool" />
<label class="rz-ms-2" for="PresaVisioneDatiPersonali" style="cursor: pointer;">
Autorizzazione al trattamento dati* (<a href="/" target="_blank">leggi</a>)
</label>
</div>
</div>
<div class="col-3 mb-3">
<button type="button" class="btn btn-default w-100" @onclick="backToHome">
Torna all'inserimento codice
</button>
</div>
<div class="col-3 mb-3">
<button type="submit" class="btn btn-danger w-100" disabled="@(!PresaVisionePrivacy || !PresaVisioneDatiPersonali)">
Invia
</button>
</div>
</div>
</div>
</EditForm>
<Home_Registrazione invito="invito" />
}
else
{
@ -283,21 +119,11 @@
[Parameter]
public Guid? invitationId { get; set; }
private InvitoEvento invito { get; set; }
[SupplyParameterFromForm]
private IscrizioneEventoViewModel iscrizione { get; set; } = new();
private IEnumerable<string> comuneList { get; set; }
private IEnumerable<string> provinciaList { get; set; }
private IEnumerable<DestinazioneViewModel> destinazioniList { get; set; }
private IEnumerable<LookupViewModel<Guid>> tipologiaList { get; set; }
private IEnumerable<string> esperienzaList { get; set; }
private IEnumerable<LookupViewModel<int>> ruoloList { get; set; }
public string invitationCode { get; set; } = string.Empty;
private InvitoEvento invito { get; set; }
private string invalidCode = string.Empty;
private bool PresaVisionePrivacy { get; set; }
private bool PresaVisioneDatiPersonali { get; set; }
private IEnumerable<DestinazioneViewModel> destinazioniList { get; set; }
protected override async Task OnInitializedAsync()
{
@ -307,26 +133,8 @@
includi: x => x.Include(y => y.Evento).Include(y => y.Cliente).ThenInclude(y => y.Destinazioni).Include(y => y.IscrizioniEvento))
: new();
if (invito == null)
invalidCode = "Il codice inserito non risulta corretto";
else
{
var destinazioniIds = invito.IscrizioniEvento?.Select(x => x.DestinazioneId).ToList() ?? new List<Guid?>();
destinazioniList = (await _managerService.DestinazioneService.RicercaQueryable(filtro: x => x.ClienteId == invito.ClienteId && !destinazioniIds.Any(y => y == x.Id))).Select(x => (DestinazioneViewModel)x).ToList();
comuneList = new List<string>() { "Brescia" };
provinciaList = new List<string>() { "BS" };
esperienzaList = new List<string>() { "Si", "No" };
var eUtils = new EnumUtils();
tipologiaList = (await _managerService.TipologiaClienteService.RicercaQueryable(x => x.Eliminato == false, ordinamento: x => x.OrderBy(y => y.Nome)))
.Select(x => new LookupViewModel<Guid>(x.Id, x.Nome)).ToList();
ruoloList = eUtils.GetEnumList<RuoloTipo>();
// Compilazione automatica campi iscrizione
iscrizione.RagioneSociale = invito?.Cliente?.RagioneSociale ?? "";
if (destinazioniList.Count() == 1)
iscrizione.DestinazioneId = destinazioniList.First()?.Id;
}
var destinazioniIds = invito.IscrizioniEvento?.Select(x => x.DestinazioneId).ToList() ?? new List<Guid?>();
destinazioniList = (await _managerService.DestinazioneService.RicercaQueryable(filtro: x => x.ClienteId == invito.ClienteId && !destinazioniIds.Any(y => y == x.Id))).Select(x => (DestinazioneViewModel)x).ToList();
}
protected override async Task OnAfterRenderAsync(bool firstRender)
@ -351,23 +159,4 @@
{
_navManager.NavigateTo($"/");
}
private async Task onIscrizioneSave()
{
var model = new IscrizioneEvento()
{
EventoId = invito.EventoId,
InvitoEventoId = invito.Id,
ClienteId = invito.ClienteId,
DestinazioneId = iscrizione.DestinazioneId,
TipologiaClienteId = iscrizione.TipologiaClienteId
};
model = iscrizione.Map(model);
//model.TipologiaCliente = await _managerService.TipologiaClienteService.RicercaPer(x => x.Id == iscrizione.TipologiaClienteId && x.Eliminato == false);
await _managerService.IscrizioneEventoService.Salva(model);
_navManager.NavigateTo($"/");
}
}

View File

@ -0,0 +1,88 @@
@using Microsoft.EntityFrameworkCore
@using StandManager.Components.Layout
@using System.Threading.Tasks
@using StandManager.Model
@page "/Registrazione"
@layout PublicLayout
@rendermode InteractiveServer
<PageTitle>Iscrizione Evento</PageTitle>
<header class="navbar navbar-expand-lg navbar-transparent bg-red py-3" data-bs-theme="dark">
<div class="container position-relative">
<img src="/Logo_dac.png" alt="Logo DAC" class="d-block mx-auto" style="height: 80px;" />
<div class="collapse navbar-collapse position-absolute end-0 top-50 translate-middle-y pe-3">
<nav class="navbar-nav ms-auto">
<div class="nav-item">
<a class="nav-link text-white" href="/management"><span class="nav-link-title">Management</span></a>
</div>
<div class="nav-item">
<a class="nav-link text-white" href="/scan"><span class="nav-link-title">Scansione</span></a>
</div>
</nav>
</div>
</div>
</header>
<div class="container my-5 py-3">
<ClienteToggle ValueChanged="onClienteToggleChanged" />
@if (showCodiceCliente)
{
<div class="col-12">
<div class="row">
<div class="col-12 mb-3">
<RadzenFormField Text="Codice cliente o Partita IVA" Variant="Variant.Flat" Style="width: 100%;">
<RadzenTextBox Style="width: 100%" aria-label="Codice cliente o Partita IVA" Change="(args => onCodiceFornitoChanged(args))" />
</RadzenFormField>
</div>
</div>
</div>
}
@if (showForm)
{
<Component_Registrazione invito="invito" @ref="registrazione" />
}
</div>
<Footer />
@code {
private bool showCodiceCliente { get; set; } = false;
private bool showForm { get; set; } = false;
private InvitoEventoViewModel invito { get; set; } = new InvitoEventoViewModel();
private Component_Registrazione registrazione { get; set; }
private string codiceFornito { get; set; }
private void onClienteToggleChanged(bool value)
{
showCodiceCliente = value;
showForm = true;
}
private async Task onCodiceFornitoChanged(string text)
{
codiceFornito = text;
invito.CodiceFornito = codiceFornito;
var destinazione = (await _managerService.DestinazioneService.RicercaPer(
x => x.PartitaIva == codiceFornito || x.CodiceFiscale == codiceFornito || x.Rid == codiceFornito || x.Cliente.Rid == codiceFornito,
includi: x => x.Include(y => y.Cliente)));
if (destinazione != null)
{
invito.ClienteId = destinazione.ClienteId;
invito.DestinazioneId = destinazione.Id;
invito.CodiceFornito = codiceFornito;
invito.RagioneSociale = destinazione.Cliente?.RagioneSociale ?? string.Empty;
registrazione.SetDatiCliente();
}
showForm = true;
}
}

View File

@ -0,0 +1,31 @@
using StandManager.Domain.Entita;
using StandManager.Domain.Entita.Base;
using System.ComponentModel.DataAnnotations.Schema;
namespace StandManager.Model
{
public class InvitoEventoViewModel
{
public Guid? Id { get; set; }
public Guid? EventoId { get; set; }
public Guid? ClienteId { get; set; }
public Guid? DestinazioneId { get; set; }
public string CodiceFornito { get; set; }
public string RagioneSociale { get; set; }
public List<IscrizioneEventoViewModel> IscrizioniEvento { get; set; }
public static implicit operator InvitoEventoViewModel(InvitoEvento model)
{
return model == null
? null
: new InvitoEventoViewModel()
{
ClienteId = model.ClienteId,
CodiceFornito = model.CodiceFornito,
EventoId = model.EventoId,
Id = model.Id,
IscrizioniEvento = model.IscrizioniEvento?.Select(x => (IscrizioneEventoViewModel)x).ToList()
};
}
}
}

View File

@ -9,10 +9,9 @@ public class IscrizioneEventoViewModel
public EventoViewModel Evento { get; set; }
public InvitoEvento InvitoEvento { get; set; }
public ClienteViewModel Cliente { get; set; }
[Required(ErrorMessage = "La destinazione è obbligatoria")]
public Guid? ClienteId { get; set; }
public Guid? DestinazioneId { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Inserire un numero di partecipanti validi")]
[Range(1, int.MaxValue, ErrorMessage = "Inserire un numero di partecipanti valido")]
public int Partecipanti { get; set; }
public string? Note { get; set; }
@ -42,10 +41,8 @@ public class IscrizioneEventoViewModel
[Required(ErrorMessage = "Il ruolo è obbigatorio")]
public int? RuoloInt { get; set; }
public string? PartitaIva { get; set; }
[Required(ErrorMessage = "Bisogna inserire una data iscrizione")]
public DateTime? GiornoPresenzaDal { get; set; }
[Required(ErrorMessage = "Bisogna inserire una data iscrizione")]
public DateTime? GiornoPresenzaAl { get; set; }
[Required(ErrorMessage = "E' necessario indicare la data di partecipazione")]
public DateTime? GiornoPresenza { get; set; }
public IscrizioneEvento Map(IscrizioneEvento model)
{
@ -63,10 +60,40 @@ public class IscrizioneEventoViewModel
model.RagioneSociale = RagioneSociale;
model.EsperienzaConDAC = EsperienzaConDAC;
model.PartitaIva = PartitaIva;
model.GiornoPresenzaDal = GiornoPresenzaDal.Value;
model.GiornoPresenzaAl = GiornoPresenzaAl.Value;
model.GiornoPresenza = GiornoPresenza.Value;
return model;
}
public static implicit operator IscrizioneEventoViewModel(IscrizioneEvento model)
{
return model == null
? null
: new IscrizioneEventoViewModel()
{
Id = model.Id,
InvitoEvento = model.InvitoEvento,
DestinazioneId = model.DestinazioneId,
ClienteId = model.Cliente?.Id,
Partecipanti = model.Partecipanti,
Note = model.Note,
ScanCompleto = model.ScanCompleto,
DataScan = model.DataScan,
Nome = model.Nome,
Cognome = model.Cognome,
Email = model.Email,
NumeroTelefono = model.NumeroTelefono,
Provincia = model.Provincia,
Comune = model.Comune,
Cap = model.Cap,
RagioneSociale = model.RagioneSociale,
EsperienzaConDAC = model.EsperienzaConDAC,
TipologiaClienteId = model.TipologiaClienteId,
Ruolo = model.Ruolo,
RuoloInt = (int?)model.Ruolo,
PartitaIva = model.PartitaIva,
GiornoPresenza = model.GiornoPresenza
};
}
}