- Lavoro su pagina IscrizioneEvento (Home.razor)

This commit is contained in:
2025-12-11 18:02:05 +01:00
parent 0a5b30fa0a
commit 69d28744f6
13 changed files with 1848 additions and 99 deletions

View File

@ -24,9 +24,26 @@ public class Cliente : EntitaBase
public string? Rid { get; set; } public string? Rid { get; set; }
public ClienteTipo TipologiaCliente { get; set; } public ClienteTipo TipologiaCliente { get; set; }
public ClienteStato StatoCliente { get; set; }
} }
public enum ClienteTipo public enum ClienteTipo
{
[Description("Alberghiero")]
Alberghiero = 0,
[Description("Ristoranti")]
Ristoranti = 1,
[Description("Pizzerie")]
Pizzerie = 2,
[Description("Wine Bar")]
WineBar = 3,
[Description("Bar")]
Bar = 4,
[Description("Ristorazione Collettiva")]
RistorazioneCollettiva = 5
}
public enum ClienteStato
{ {
[Description("Cliente")] [Description("Cliente")]
Cliente = 0, Cliente = 0,

View File

@ -1,4 +1,5 @@
using StandManager.Domain.Entita.Base; using StandManager.Domain.Entita.Base;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
namespace StandManager.Domain.Entita; namespace StandManager.Domain.Entita;
@ -25,4 +26,26 @@ public class IscrizioneEvento : EntitaBase
public string QrCodeCode{ get; set; } public string QrCodeCode{ get; set; }
public bool ScanCompleto{ get; set; } public bool ScanCompleto{ get; set; }
public DateTime? DataScan{ get; set; } public DateTime? DataScan{ get; set; }
public string? Nome{ get; set; }
public string? Cognome{ get; set; }
public string? Email { get; set; }
public string? NumeroTelefono { get; set; }
public string? Provincia { get; set; }
public string? Comune { get; set; }
public string? Cap { get; set; }
public string? RagioneSociale { get; set; }
public ClienteTipo Tipologia { get; set; }
public string? EsperienzaConDAC { get; set; }
public RuoloTipo Ruolo { get; set; }
}
public enum RuoloTipo
{
[Description("Titolare dell'azienda")]
Titolare = 0,
[Description("Dipendente dell'azienda")]
Dipendente = 10,
[Description("Libera Professione")]
LiberaProfessione = 100,
} }

View File

@ -0,0 +1,657 @@
// <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("20251211104525_ModificheIscrizioneEvento")]
partial class ModificheIscrizioneEvento
{
/// <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<int>("TipologiaCliente")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("AgenteId");
b.HasIndex("IdUtenteCreazione");
b.HasIndex("IdUtenteModifica");
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<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.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<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<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")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<int>("Partecipanti")
.HasColumnType("int");
b.Property<string>("Provincia")
.HasColumnType("nvarchar(max)");
b.Property<string>("QrCodeCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<bool>("ScanCompleto")
.HasColumnType("bit");
b.Property<int>("Tipologia")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ClienteId");
b.HasIndex("DestinazioneId");
b.HasIndex("EventoId");
b.HasIndex("IdUtenteCreazione");
b.HasIndex("IdUtenteModifica");
b.HasIndex("InvitoEventoId");
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.Utente", 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<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.Navigation("Agente");
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.Navigation("Cliente");
b.Navigation("Destinazione");
b.Navigation("Evento");
b.Navigation("InvitoEvento");
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.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,142 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace StandManager.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class ModificheIscrizioneEvento : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Cap",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Cognome",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Comune",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Email",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "EsperienzaConDAC",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Nome",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "NumeroTelefono",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Provincia",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "RagioneSociale",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "Ruolo",
table: "IscrizioneEvento",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "Tipologia",
table: "IscrizioneEvento",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "StatoCliente",
table: "Cliente",
type: "int",
nullable: false,
defaultValue: 0);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Cap",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Cognome",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Comune",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Email",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "EsperienzaConDAC",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Nome",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "NumeroTelefono",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Provincia",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "RagioneSociale",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Ruolo",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "Tipologia",
table: "IscrizioneEvento");
migrationBuilder.DropColumn(
name: "StatoCliente",
table: "Cliente");
}
}
}

View File

@ -0,0 +1,656 @@
// <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("20251211161908_NullableIscrizioneEvento")]
partial class NullableIscrizioneEvento
{
/// <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<int>("TipologiaCliente")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("AgenteId");
b.HasIndex("IdUtenteCreazione");
b.HasIndex("IdUtenteModifica");
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<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.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<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<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")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<int>("Partecipanti")
.HasColumnType("int");
b.Property<string>("Provincia")
.HasColumnType("nvarchar(max)");
b.Property<string>("QrCodeCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<bool>("ScanCompleto")
.HasColumnType("bit");
b.Property<int>("Tipologia")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ClienteId");
b.HasIndex("DestinazioneId");
b.HasIndex("EventoId");
b.HasIndex("IdUtenteCreazione");
b.HasIndex("IdUtenteModifica");
b.HasIndex("InvitoEventoId");
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.Utente", 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<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.Navigation("Agente");
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.Navigation("Cliente");
b.Navigation("Destinazione");
b.Navigation("Evento");
b.Navigation("InvitoEvento");
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.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,36 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace StandManager.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class NullableIscrizioneEvento : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "RagioneSociale",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(max)");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "RagioneSociale",
table: "IscrizioneEvento",
type: "nvarchar(max)",
nullable: false,
defaultValue: "",
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
}
}
}

View File

@ -75,6 +75,9 @@ namespace StandManager.Infrastructure.Migrations
b.Property<string>("Rid") b.Property<string>("Rid")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<int>("StatoCliente")
.HasColumnType("int");
b.Property<int>("TipologiaCliente") b.Property<int>("TipologiaCliente")
.HasColumnType("int"); .HasColumnType("int");
@ -263,9 +266,18 @@ namespace StandManager.Infrastructure.Migrations
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("Cap")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("ClienteId") b.Property<Guid?>("ClienteId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("Cognome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Comune")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DataCreazione") b.Property<DateTime>("DataCreazione")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
@ -281,6 +293,12 @@ namespace StandManager.Infrastructure.Migrations
b.Property<bool>("Eliminato") b.Property<bool>("Eliminato")
.HasColumnType("bit"); .HasColumnType("bit");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("EsperienzaConDAC")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("EventoId") b.Property<Guid?>("EventoId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -293,20 +311,38 @@ namespace StandManager.Infrastructure.Migrations
b.Property<Guid?>("InvitoEventoId") b.Property<Guid?>("InvitoEventoId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("Nome")
.HasColumnType("nvarchar(max)");
b.Property<string>("Note") b.Property<string>("Note")
.IsRequired() .IsRequired()
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<string>("NumeroTelefono")
.HasColumnType("nvarchar(max)");
b.Property<int>("Partecipanti") b.Property<int>("Partecipanti")
.HasColumnType("int"); .HasColumnType("int");
b.Property<string>("Provincia")
.HasColumnType("nvarchar(max)");
b.Property<string>("QrCodeCode") b.Property<string>("QrCodeCode")
.IsRequired() .IsRequired()
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<string>("RagioneSociale")
.HasColumnType("nvarchar(max)");
b.Property<int>("Ruolo")
.HasColumnType("int");
b.Property<bool>("ScanCompleto") b.Property<bool>("ScanCompleto")
.HasColumnType("bit"); .HasColumnType("bit");
b.Property<int>("Tipologia")
.HasColumnType("int");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ClienteId"); b.HasIndex("ClienteId");
@ -545,7 +581,7 @@ namespace StandManager.Infrastructure.Migrations
.HasForeignKey("IdUtenteModifica"); .HasForeignKey("IdUtenteModifica");
b.HasOne("StandManager.Domain.Entita.InvitoEvento", "InvitoEvento") b.HasOne("StandManager.Domain.Entita.InvitoEvento", "InvitoEvento")
.WithMany() .WithMany("IscrizioniEvento")
.HasForeignKey("InvitoEventoId"); .HasForeignKey("InvitoEventoId");
b.Navigation("Cliente"); b.Navigation("Cliente");
@ -606,6 +642,11 @@ namespace StandManager.Infrastructure.Migrations
{ {
b.Navigation("Referenti"); b.Navigation("Referenti");
}); });
modelBuilder.Entity("StandManager.Domain.Entita.InvitoEvento", b =>
{
b.Navigation("IscrizioniEvento");
});
#pragma warning restore 612, 618 #pragma warning restore 612, 618
} }
} }

View File

@ -18,6 +18,8 @@
<link href="/libs/Fontawesome/css/regular.min.css" rel="stylesheet" /> <link href="/libs/Fontawesome/css/regular.min.css" rel="stylesheet" />
<link rel="icon" type="image/png" href="favicon.png" /> <link rel="icon" type="image/png" href="favicon.png" />
<RadzenTheme Theme="material" /> <RadzenTheme Theme="material" />
<link href="/app.css" rel="stylesheet" />
<HeadOutlet /> <HeadOutlet />
</head> </head>

View File

@ -15,16 +15,18 @@
<AuthorizeView> <AuthorizeView>
<Authorized> <Authorized>
<header class="navbar navbar-expand-lg navbar-transparent py-3"> <header class="navbar navbar-expand-lg navbar-transparent bg-red py-3" data-bs-theme="dark">
<div class="container"> <div class="container position-relative">
<div class="collapse navbar-collapse">
<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"> <nav class="navbar-nav ms-auto">
<div class="nav-item"> <div class="nav-item">
<a class="nav-link" href="/management"><span class="nav-link-title">Management</span></a> <a class="nav-link text-white" href="/management"><span class="nav-link-title">Management</span></a>
</div> </div>
<div class="nav-item"> <div class="nav-item">
<a class="nav-link" href="/scan"><span class="nav-link-title">Scansione</span></a> <a class="nav-link text-white" href="/scan"><span class="nav-link-title">Scansione</span></a>
</div> </div>
</nav> </nav>
</div> </div>
@ -33,12 +35,15 @@
</Authorized> </Authorized>
<NotAuthorized> <NotAuthorized>
<header class="navbar navbar-expand-lg navbar-transparent py-3"> <header class="navbar navbar-expand-lg navbar-transparent bg-red py-3" data-bs-theme="dark">
<div class="container"> <div class="container position-relative">
<div class="collapse navbar-collapse">
<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"> <nav class="navbar-nav ms-auto">
<div class="nav-item"> <div class="nav-item">
<a class="nav-link" href="/management"><span class="nav-link-title">Management</span></a> <a class="nav-link text-white" href="/management"><span class="nav-link-title">Management</span></a>
</div> </div>
</nav> </nav>
</div> </div>
@ -47,107 +52,201 @@
</NotAuthorized> </NotAuthorized>
</AuthorizeView> </AuthorizeView>
<header class="hero pb-0"> <div class="container my-5 py-3">
<div class="container"> @if (invitationId.HasValue && invito != null)
@if (invitationId.HasValue && invito != null) {
@if (destinazioniList.Count() > 0)
{ {
<div class="mb-2"> <div class="row g-5 mb-3">
<h1 class="hero-title">Ciao @invito.Cliente.RagioneSociale - Sei stato invitato a: @invito.Evento.Titolo</h1> <EditForm Model="iscrizione" OnValidSubmit="onIscrizioneSave" FormName="iscrizioneForm">
<p class="hero-description mt-4"> <DataAnnotationsValidator />
L'evento si terrà dal @invito.Evento.DataDa.ToString("dd/MM/yyyy") al @invito.Evento.DataA.ToString("dd/MM/yyyy"), presso: @invito.Evento.Luogo
</p>
</div>
@if (destinazioniList.Count() > 0) <div class="col-12">
{ <div class="row">
<div class="row row-cards"> <div class="col-6 mb-3">
<div class="col-lg-12"> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Nome</RadzenText>
<div class="card"> <RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.Nome" />
<div class="card-header"> <ValidationMessage For="@(() => iscrizione.Nome)" />
Compila le destinazioni mancanti
</div> </div>
<div class="card-body"> <div class="col-6 mb-3">
<div class="row g-5"> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Cognome</RadzenText>
<EditForm Model="iscrizione" OnValidSubmit="onIscrizioneSave" FormName="iscrizioneForm"> <RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@iscrizione.Cognome" />
<DataAnnotationsValidator /> <ValidationMessage For="@(() => iscrizione.Cognome)" />
</div>
</div>
<div class="col-12"> <div class="row">
<div class="row"> <div class="col-6 mb-3">
<div class="col-8 mb-3"> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">E-mail</RadzenText>
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Destinazione</RadzenText> <RadzenTextBox Style="width: 100%" aria-label="Email" @bind-Value="@iscrizione.Email" />
<RadzenDropDown @bind-Value="@iscrizione.Destinazione" Style="width: 100%" TextProperty="RagioneSociale" <ValidationMessage For="@(() => iscrizione.Email)" />
Data="@destinazioniList" Size="ButtonSize.Small" /> </div>
<ValidationMessage For="@(() => iscrizione.Destinazione)" /> <div class="col-6 mb-3">
</div> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Telefono</RadzenText>
<div class="col-4 mb-3"> <RadzenTextBox Style="width: 100%" aria-label="NumeroTelefono" @bind-Value="@iscrizione.NumeroTelefono" />
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Numero di partecipanti</RadzenText> <ValidationMessage For="@(() => iscrizione.NumeroTelefono)" />
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" /> </div>
<ValidationMessage For="@(() => iscrizione.Partecipanti)" /> </div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-12 mb-3"> <div class="col-4 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Note</RadzenText> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Comune</RadzenText>
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" /> <RadzenDropDown @bind-Value="@iscrizione.Comune" Style="width: 100%" TextProperty="" Placeholder="Seleziona il comune"
<ValidationMessage For="@(() => iscrizione.Note)" /> Data="@comuneList" Size="ButtonSize.Small" />
</div> <ValidationMessage For="@(() => iscrizione.Comune)" />
</div> </div>
<div class="col-4 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Cap</RadzenText>
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.Cap" />
<ValidationMessage For="@(() => iscrizione.Cap)" />
</div>
<div class="col-4 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Provincia</RadzenText>
<RadzenDropDown @bind-Value="@iscrizione.Provincia" Style="width: 100%" TextProperty="" Placeholder="Seleziona la provincia"
Data="@provinciaList" Size="ButtonSize.Small" />
<ValidationMessage For="@(() => iscrizione.Provincia)" />
</div>
</div>
<div class="row"> <div class="row">
<div class="col-3 mb-3"> <div class="col-6 mb-3">
<button type="button" class="btn btn-default w-100" @onclick="backToHome"> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Ragione Sociale</RadzenText>
Torna all'inserimento codice <RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.RagioneSociale" />
</button> <ValidationMessage For="@(() => iscrizione.RagioneSociale)" />
</div> </div>
<div class="col-3 mb-3"> <div class="col-6 mb-3">
<button type="submit" class="btn btn-primary w-100"> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Tipologia</RadzenText>
Salva <RadzenDropDown @bind-Value="@iscrizione.TipologiaInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona la tipologia"
</button> Data="@tipologiaList" Size="ButtonSize.Small" />
</div> <ValidationMessage For="@(() => iscrizione.TipologiaInt)" />
</div> </div>
</div> </div>
</EditForm>
<div class="row">
<div class="col-6 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Hai già avuto un'esperienza con DAC?</RadzenText>
<RadzenDropDown @bind-Value="@iscrizione.EsperienzaConDAC" Style="width: 100%" TextProperty="" Placeholder="Scegli dal menù"
Data="@esperienzaList" Size="ButtonSize.Small" />
<ValidationMessage For="@(() => iscrizione.EsperienzaConDAC)" />
</div>
<div class="col-6 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Ruolo</RadzenText>
<RadzenDropDown @bind-Value="@iscrizione.RuoloInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona il ruolo"
Data="@ruoloList" Size="ButtonSize.Small" />
<ValidationMessage For="@(() => iscrizione.RuoloInt)" />
</div>
</div>
<div class="row">
<div class="col-6 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Destinazione</RadzenText>
<RadzenDropDown @bind-Value="@iscrizione.Destinazione" Style="width: 100%" TextProperty="RagioneSociale" Placeholder="Seleziona la destinazione"
Data="@destinazioniList" Size="ButtonSize.Small" />
<ValidationMessage For="@(() => iscrizione.Destinazione)" />
</div>
<div class="col-6 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Numero di partecipanti</RadzenText>
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" />
<ValidationMessage For="@(() => iscrizione.Partecipanti)" />
</div>
</div>
<div class="row">
<div class="col-12 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Note</RadzenText>
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" />
<ValidationMessage For="@(() => iscrizione.Note)" />
</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=@iscrizione.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>
<div class="d-flex align-items-center">
<RadzenCheckBox class="form-check-input" @bind-Value=@iscrizione.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="@(!iscrizione.PresaVisionePrivacy || !iscrizione.PresaVisioneDatiPersonali)">
Invia
</button>
</div> </div>
</div> </div>
</div> </div>
</div> </EditForm>
} </div>
else
{
<div class="text-danger mt-1">Non sono presenti destinazioni da compilare per questo evento!</div>
}
} }
else else
{ {
<div class="mb-2"> <div class="text-danger mt-1">Non sono presenti destinazioni da compilare per questo evento!</div>
<h1 class="hero-title">Iscriviti ad un evento, inserisci il tuo codice di invito</h1> }
</div>
<div class="col-12"> }
<div class="row"> else
<div class="col-9 mb-3"> {
<RadzenTextBox @bind-Value="@invitationCode" Placeholder="Inserirci il codice invito" Style="width: 100%;" /> <div class="mb-2">
@if (!string.IsNullOrEmpty(invalidCode)) <h1 class="hero-title">Iscriviti ad un evento, inserisci il tuo codice di invito</h1>
{ </div>
<div class="text-danger mt-1">@invalidCode</div>
} <div class="col-12">
</div> <div class="row">
<div class="col-3 mb-3"> <div class="col-9 mb-3">
<button type="button" class="btn btn-primary w-100" @onclick="reloadWithCode"> <RadzenTextBox @bind-Value="@invitationCode" Placeholder="Inserirci il codice invito" Style="width: 100%;" />
Invia @if (!string.IsNullOrEmpty(invalidCode))
</button> {
</div> <div class="text-danger mt-1">@invalidCode</div>
}
</div>
<div class="col-3 mb-3">
<button type="button" class="btn btn-danger w-100" @onclick="reloadWithCode">
Invia
</button>
</div> </div>
</div> </div>
} </div>
}
</div>
<footer class="footer bg-red text-white">
<div class="container-xl">
<div class="row align-items-start">
<h3><b>DAC S.p.A.</b></h3>
<div class="col-4 text-left">
C.F. / P. IVA: IT03038290171<br />
Reg. Imp. di città n. 03038290171<br />
R.E.A. n. BS-313463<br />
Capitale Sociale € 3.000.000,00 i.v.<br />
</div>
<div class="col-4 text-left">
<b><i class="fa-regular fa-map"></i> Sede legale e amministrativa</b><br />
Via G.Marconi, n.15 - 25020 Flero (BS)<br />
<b><i class="fa-solid fa-phone"></i> Tel. +39 030 256 8211</b><br />
<b><i class="fa-regular fa-envelope"></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>
</div>
</div>
</div> </div>
</header> </footer>
@code { @code {
[Parameter] [Parameter]
public Guid? invitationId { get; set; } public Guid? invitationId { get; set; }
@ -155,7 +254,12 @@
[SupplyParameterFromForm] [SupplyParameterFromForm]
private IscrizioneEventoViewModel iscrizione { get; set; } = new(); 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<DestinazioneViewModel> destinazioniList { get; set; }
private IEnumerable<LookupViewModel<int>> tipologiaList { get; set; }
private IEnumerable<string> esperienzaList { get; set; }
private IEnumerable<LookupViewModel<int>> ruoloList { get; set; }
public string invitationCode { get; set; } = string.Empty; public string invitationCode { get; set; } = string.Empty;
private string invalidCode = string.Empty; private string invalidCode = string.Empty;
@ -172,8 +276,15 @@
invalidCode = "Il codice inserito non risulta corretto"; invalidCode = "Il codice inserito non risulta corretto";
else else
{ {
iscrizione.RagioneSociale = invito?.Cliente?.RagioneSociale ?? "";
var destinazioniIds = invito.IscrizioniEvento?.Select(x => x.DestinazioneId).ToList() ?? new List<Guid?>(); 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(); 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 = eUtils.GetEnumList<ClienteTipo>();
ruoloList = eUtils.GetEnumList<RuoloTipo>();
} }
} }

View File

@ -94,6 +94,10 @@
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Tipologia</RadzenText> <RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Tipologia</RadzenText>
<RadzenDropDown Style="width: 100%" TValue="int" @bind-Value=@cliente.TipologiaClienteInt Data=@tipologiaCliente TextProperty="Description" ValueProperty="Key" Name="tipologiaClienteDrop" /> <RadzenDropDown Style="width: 100%" TValue="int" @bind-Value=@cliente.TipologiaClienteInt Data=@tipologiaCliente TextProperty="Description" ValueProperty="Key" Name="tipologiaClienteDrop" />
</div> </div>
<div class="col-3 mb-3">
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Stato</RadzenText>
<RadzenDropDown Style="width: 100%" TValue="int" @bind-Value=@cliente.StatoClienteInt Data=@statoCliente TextProperty="Description" ValueProperty="Key" Name="statoClienteDrop" />
</div>
</div> </div>
<div class="row"> <div class="row">
@ -171,6 +175,7 @@
private IEnumerable<UtenteViewModel> agenti { get; set; } = new List<UtenteViewModel>(); private IEnumerable<UtenteViewModel> agenti { get; set; } = new List<UtenteViewModel>();
private List<LookupViewModel<int>> tipologiaCliente { get; set; } = new List<LookupViewModel<int>>(); private List<LookupViewModel<int>> tipologiaCliente { get; set; } = new List<LookupViewModel<int>>();
private List<LookupViewModel<int>> statoCliente { get; set; } = new List<LookupViewModel<int>>();
RadzenDataGrid<DestinazioneViewModel> destinazioniGrid; RadzenDataGrid<DestinazioneViewModel> destinazioniGrid;
private string pageTitle => cliente?.Id == Guid.Empty ? "Nuovo cliente" : "Modifica cliente"; private string pageTitle => cliente?.Id == Guid.Empty ? "Nuovo cliente" : "Modifica cliente";
@ -193,6 +198,7 @@
.Select(x => (UtenteViewModel)x).ToList(); .Select(x => (UtenteViewModel)x).ToList();
var eUtils = new EnumUtils(); var eUtils = new EnumUtils();
tipologiaCliente = eUtils.GetEnumList<ClienteTipo>(); tipologiaCliente = eUtils.GetEnumList<ClienteTipo>();
statoCliente = eUtils.GetEnumList<ClienteStato>();
if (ClienteId.GetValueOrDefault() != Guid.Empty) if (ClienteId.GetValueOrDefault() != Guid.Empty)
cliente = await _managerService.ClienteService.RicercaPer(x => x.Id == ClienteId, includi: x => x.Include(y => y.Agente).Include(y => y.Destinazioni).ThenInclude(z => z.Agente)); cliente = await _managerService.ClienteService.RicercaPer(x => x.Id == ClienteId, includi: x => x.Include(y => y.Agente).Include(y => y.Destinazioni).ThenInclude(z => z.Agente));

View File

@ -23,6 +23,8 @@ public class ClienteViewModel
public string Rid { get; set; } public string Rid { get; set; }
public ClienteTipo TipologiaCliente { get; set; } public ClienteTipo TipologiaCliente { get; set; }
public int TipologiaClienteInt { get; set; } public int TipologiaClienteInt { get; set; }
public ClienteStato StatoCliente { get; set; }
public int StatoClienteInt { get; set; }
public static implicit operator ClienteViewModel(Cliente model) public static implicit operator ClienteViewModel(Cliente model)
{ {
@ -45,7 +47,9 @@ public class ClienteViewModel
RagioneSociale = model.RagioneSociale, RagioneSociale = model.RagioneSociale,
Rid = model.Rid, Rid = model.Rid,
TipologiaCliente = model.TipologiaCliente, TipologiaCliente = model.TipologiaCliente,
TipologiaClienteInt = (int)model.TipologiaCliente TipologiaClienteInt = (int)model.TipologiaCliente,
StatoCliente = model.StatoCliente,
StatoClienteInt = (int)model.StatoCliente
}; };
} }
@ -60,7 +64,8 @@ public class ClienteViewModel
model.EmailInvito = EmailInvito; model.EmailInvito = EmailInvito;
model.NumeroTelefono = NumeroTelefono; model.NumeroTelefono = NumeroTelefono;
model.Rid = Rid; model.Rid = Rid;
model.TipologiaCliente = TipologiaCliente; model.TipologiaCliente = (ClienteTipo)TipologiaClienteInt;
model.StatoCliente = (ClienteStato)StatoClienteInt;
return model; return model;
} }

View File

@ -12,6 +12,7 @@ public class IscrizioneEventoViewModel
[Required(ErrorMessage = "La destinazione è obbligatoria")] [Required(ErrorMessage = "La destinazione è obbligatoria")]
public DestinazioneViewModel Destinazione { get; set; } public DestinazioneViewModel Destinazione { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Inserire un numero di partecipanti validi")]
public int Partecipanti { get; set; } public int Partecipanti { get; set; }
[Required(ErrorMessage = "Le note sono obbligatorie")] [Required(ErrorMessage = "Le note sono obbligatorie")]
@ -19,6 +20,34 @@ public class IscrizioneEventoViewModel
public string QrCodeCode { get; set; } public string QrCodeCode { get; set; }
public bool ScanCompleto { get; set; } public bool ScanCompleto { get; set; }
public DateTime? DataScan { get; set; } public DateTime? DataScan { get; set; }
[Required(ErrorMessage = "Il nome è obbigatorio")]
public string Nome { get; set; }
[Required(ErrorMessage = "Il cognome è obbigatorio")]
public string Cognome { get; set; }
[Required(ErrorMessage = "La E-mail è obbigatoria")]
public string Email { get; set; }
[Required(ErrorMessage = "Il numero di telefono è obbigatorio")]
public string NumeroTelefono { get; set; }
[Required(ErrorMessage = "La provincia è obbigatoria")]
public string Provincia { get; set; }
[Required(ErrorMessage = "Il comune è obbigatorio")]
public string Comune { get; set; }
[Required(ErrorMessage = "Il CAP è obbigatorio")]
public string Cap { get; set; }
[Required(ErrorMessage = "La Ragione Sociale è obbigatoria")]
public string RagioneSociale { get; set; }
[Required(ErrorMessage = "Il campo è obbigatorio")]
public string EsperienzaConDAC { get; set; }
public ClienteTipo Tipologia { get; set; }
[Required(ErrorMessage = "La tipologia è obbigatoria")]
public int? TipologiaInt { get; set; }
public RuoloTipo Ruolo { get; set; }
[Required(ErrorMessage = "Il ruolo è obbigatorio")]
public int? RuoloInt { get; set; }
public bool PresaVisionePrivacy { get; set; }
public bool PresaVisioneDatiPersonali { get; set; }
public static implicit operator IscrizioneEventoViewModel(IscrizioneEvento model) public static implicit operator IscrizioneEventoViewModel(IscrizioneEvento model)
{ {
@ -35,7 +64,20 @@ public class IscrizioneEventoViewModel
Note = model.Note, Note = model.Note,
QrCodeCode = model.QrCodeCode, QrCodeCode = model.QrCodeCode,
ScanCompleto = model.ScanCompleto, ScanCompleto = model.ScanCompleto,
DataScan = model.DataScan 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,
Tipologia = model.Tipologia,
TipologiaInt = (int)model.Tipologia,
Ruolo = model.Ruolo,
RuoloInt = (int)model.Ruolo,
}; };
} }
@ -46,6 +88,17 @@ public class IscrizioneEventoViewModel
model.QrCodeCode = QrCodeCode; model.QrCodeCode = QrCodeCode;
model.ScanCompleto = ScanCompleto; model.ScanCompleto = ScanCompleto;
model.DataScan = DataScan; model.DataScan = DataScan;
model.Nome = Nome;
model.Cognome = Cognome;
model.Email = Email;
model.NumeroTelefono = NumeroTelefono;
model.Provincia = Provincia;
model.Comune = Comune;
model.Cap = Cap;
model.RagioneSociale = RagioneSociale;
model.EsperienzaConDAC = EsperienzaConDAC;
model.Tipologia = (ClienteTipo)TipologiaInt;
model.Ruolo = (RuoloTipo)RuoloInt;
return model; return model;
} }

View File

@ -42,9 +42,9 @@ h1:focus {
color: white; color: white;
} }
.blazor-error-boundary::after { .blazor-error-boundary::after {
content: "An error has occurred." content: "An error has occurred."
} }
.darker-border-checkbox.form-check-input { .darker-border-checkbox.form-check-input {
border-color: #929292; border-color: #929292;