diff --git a/.idea/.idea.StandManager/.idea/data_source_mapping.xml b/.idea/.idea.StandManager/.idea/data_source_mapping.xml index 1ac53ef..253d1ec 100644 --- a/.idea/.idea.StandManager/.idea/data_source_mapping.xml +++ b/.idea/.idea.StandManager/.idea/data_source_mapping.xml @@ -3,6 +3,8 @@ + + \ No newline at end of file diff --git a/StandManager.Domain/Entita/Destinazione.cs b/StandManager.Domain/Entita/Destinazione.cs index e946002..1bdca2a 100644 --- a/StandManager.Domain/Entita/Destinazione.cs +++ b/StandManager.Domain/Entita/Destinazione.cs @@ -5,6 +5,10 @@ namespace StandManager.Domain.Entita; public class Destinazione : EntitaBase { + public Destinazione() + { + DataCreazione = DateTime.Now; + } [ForeignKey(nameof(Cliente))] public Guid? ClienteId { get; set; } public Cliente Cliente { get; set; } diff --git a/StandManager/Components/Pages/Component_Registrazione.razor b/StandManager/Components/Pages/Component_Registrazione.razor index 84ee995..495b381 100644 --- a/StandManager/Components/Pages/Component_Registrazione.razor +++ b/StandManager/Components/Pages/Component_Registrazione.razor @@ -131,7 +131,8 @@
@@ -151,6 +152,8 @@ [Parameter] public InvitoEventoViewModel invito { get; set; } [Parameter] public bool hasCliente { get; set; } + [Parameter] public Func? OnSubmitCompletedAsync { get; set; } + [SupplyParameterFromForm] private IscrizioneEventoViewModel iscrizione { get; set; } = new(); private IEnumerable destinazioniList { get; set; } @@ -210,8 +213,11 @@ model = iscrizione.Map(model); - await _managerService.IscrizioneEventoService.Salva(model); - + var saved = await _managerService.IscrizioneEventoService.Salva(model); + if (OnSubmitCompletedAsync is not null) + { + await OnSubmitCompletedAsync(this, saved); + } _navManager.NavigateTo($"/Grazie"); } diff --git a/StandManager/Components/Pages/Management/Clienti_Import.razor b/StandManager/Components/Pages/Management/Clienti_Import.razor index e1d1bb7..54e6250 100644 --- a/StandManager/Components/Pages/Management/Clienti_Import.razor +++ b/StandManager/Components/Pages/Management/Clienti_Import.razor @@ -81,11 +81,11 @@ includi: x => x.Include(i => i.Destinazioni).Include(y => y.Agente).Include(z => z.Capoarea), solaLettura: false) ?? new Cliente(); - clienteDb = await mapCliente(clienteDb, righeCliente, capoareaList, idClaim); var codiceCapoarea = righeCliente.FirstOrDefault().CapoArea; var codiceAgente = righeCliente.FirstOrDefault().Agente; clienteDb.CapoareaId = (await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == codiceCapoarea))?.Id; clienteDb.AgenteId = (await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == codiceAgente))?.Id; + clienteDb = await mapCliente(clienteDb, righeCliente, capoareaList, idClaim); await _managerService.ClienteService.Salva(clienteDb, idClaim); counter += 1; StateHasChanged(); diff --git a/StandManager/Components/Pages/Registrazione.razor b/StandManager/Components/Pages/Registrazione.razor index ab754d7..5f7e66a 100644 --- a/StandManager/Components/Pages/Registrazione.razor +++ b/StandManager/Components/Pages/Registrazione.razor @@ -1,6 +1,5 @@ @using StandManager.Components.Layout @using StandManager.Components.Widget -@using StandManager.Model @page "/" @page "/Registrazione" @@ -91,7 +90,8 @@ Body = string.Empty, Sent = false, Subject = "Registrazione", - DataCreazione = DateTime.Now + DataCreazione = DateTime.Now, + Args = "Social" }; await _managerService.MailQueueService.Salva(queue); diff --git a/StandManager/Components/Pages/RegistrazioneInFiera.razor b/StandManager/Components/Pages/RegistrazioneInFiera.razor index 4644851..b60e16d 100644 --- a/StandManager/Components/Pages/RegistrazioneInFiera.razor +++ b/StandManager/Components/Pages/RegistrazioneInFiera.razor @@ -1,9 +1,9 @@ @using Microsoft.EntityFrameworkCore @using StandManager.Components.Layout -@using System.Threading.Tasks @using StandManager.Model +@attribute [Authorize] -@page "/RegistrazioneInFiera" +@page "/registrazioneInFiera" @layout PublicLayout @rendermode InteractiveServer diff --git a/StandManager/Components/Pages/RegistrazioneSocial.razor b/StandManager/Components/Pages/RegistrazioneSocial.razor new file mode 100644 index 0000000..3305a16 --- /dev/null +++ b/StandManager/Components/Pages/RegistrazioneSocial.razor @@ -0,0 +1,83 @@ +@using Microsoft.EntityFrameworkCore +@using StandManager.Components.Layout +@using StandManager.Model + +@page "/registrazione-campagna-socialmedia-dac-expo-tecnocom-2026" +@layout PublicLayout + +@rendermode InteractiveServer + +Iscrizione Evento + + +
+ +
+ + + +@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; } = new(); + private bool hasCliente { get; set; } + + private string codiceFornito { get; set; } + + private void onClienteToggleChanged(bool value) + { + if (!value) + { + hasCliente = false; + registrazione.NoCliente(); + } + else + { + hasCliente = true; + registrazione.HasCliente(); + } + + 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; + await registrazione.SetDatiCliente(); + } + + showForm = true; + } + + private async Task onSubmitCompleted(IscrizioneEvento model) + { + var queue = new MailQueue() + { + ToList = model.Email ?? string.Empty, + From = MailFrom.Registrazione, + Body = string.Empty, + Sent = false, + Subject = "Registrazione", + DataCreazione = DateTime.Now + }; + await _managerService.MailQueueService.Salva(queue); + } +} \ No newline at end of file