diff --git a/LiMan.Api/Resources/ChangeLog.html b/LiMan.Api/Resources/ChangeLog.html
index 2a2449b..26dd0da 100644
--- a/LiMan.Api/Resources/ChangeLog.html
+++ b/LiMan.Api/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
- Versione: 1.1.2410.1818
+ Versione: 1.1.2412.3111
Note di rilascio:
-
diff --git a/LiMan.Api/Resources/VersNum.txt b/LiMan.Api/Resources/VersNum.txt
index 77dd35a..111d0aa 100644
--- a/LiMan.Api/Resources/VersNum.txt
+++ b/LiMan.Api/Resources/VersNum.txt
@@ -1 +1 @@
-1.1.2410.1818
+1.1.2412.3111
diff --git a/LiMan.Api/Resources/manifest.xml b/LiMan.Api/Resources/manifest.xml
index af9480d..9ab1cc4 100644
--- a/LiMan.Api/Resources/manifest.xml
+++ b/LiMan.Api/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 1.1.2410.1818
+ 1.1.2412.3111
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.UI.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false
diff --git a/LiMan.DB/Controllers/DbController.cs b/LiMan.DB/Controllers/DbController.cs
index 7d90383..249bce9 100644
--- a/LiMan.DB/Controllers/DbController.cs
+++ b/LiMan.DB/Controllers/DbController.cs
@@ -608,7 +608,6 @@ namespace LiMan.DB.Controllers
List dbResult = new List();
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
- DateTime oggi = DateTime.Today;
dbResult = localDbCtx
.DbSetRoles
.ToList();
@@ -740,6 +739,145 @@ namespace LiMan.DB.Controllers
//Log.Info("Dispose di GWMSController");
}
+
+ ///
+ /// Elimino una richiesta enroll (anche se già approvata...)
+ ///
+ /// record da eliminare
+ public bool EnrollReqDelete(int idReq)
+ {
+ bool fatto = false;
+ using (LMDbContext localDbCtx = new LMDbContext(_configuration))
+ {
+ // se trovo... procedo...
+ var rec2del = localDbCtx
+ .DbSetEnrollReq
+ .Where(x => x.IdReq == idReq)
+ .FirstOrDefault();
+ if (rec2del != null)
+ {
+ localDbCtx
+ .DbSetEnrollReq
+ .Remove(rec2del);
+ // salvo
+ localDbCtx.SaveChanges();
+ fatto = true;
+ }
+ }
+ return fatto;
+ }
+ ///
+ /// Elimino eventuali richieste non approvate e scadute
+ ///
+ /// record da eliminare
+ public bool EnrollReqPurgeInvalid(int idReq)
+ {
+ bool fatto = false;
+ using (LMDbContext localDbCtx = new LMDbContext(_configuration))
+ {
+ List item2del = new List();
+
+ // cerco in primis richieste NON associate a licenza
+ var list2check = localDbCtx
+ .DbSetEnrollReq
+ .Where(x => x.IdxLic == 0)
+ .ToList();
+ var list2del = list2check
+ .Where(x => x.IsScaduta)
+ .ToList();
+ if (list2del != null)
+ {
+ localDbCtx
+ .DbSetEnrollReq
+ .RemoveRange(list2del);
+ // salvo
+ int numDone = localDbCtx.SaveChanges();
+ fatto = numDone != 0;
+ }
+ }
+ return fatto;
+ }
+
+ ///
+ /// Elenco completo Enroll Req
+ ///
+ ///
+ public List EnrollReqGetAll()
+ {
+ List dbResult = new List();
+ using (LMDbContext localDbCtx = new LMDbContext(_configuration))
+ {
+ dbResult = localDbCtx
+ .DbSetEnrollReq
+ .OrderByDescending(x => x.DtReq)
+ .ToList();
+ }
+ return dbResult;
+ }
+ ///
+ /// Elenco filtrato Enroll Req x data
+ ///
+ ///
+ ///
+ ///
+ public List EnrollReqGetFilt(DateTime dtFrom, DateTime dtTo)
+ {
+ List dbResult = new List();
+ using (LMDbContext localDbCtx = new LMDbContext(_configuration))
+ {
+ dbResult = localDbCtx
+ .DbSetEnrollReq
+ .Where(x => x.DtReq >= dtFrom && x.DtReq <= dtTo)
+ .OrderByDescending(x => x.DtReq)
+ .ToList();
+ }
+ return dbResult;
+ }
+
+ ///
+ /// Upsert record richiesta enroll
+ ///
+ ///
+ ///
+ public bool EnrollReqUpsert(EnrollRequestModel newRec)
+ {
+ bool answ = false;
+ using (LMDbContext localDbCtx = new LMDbContext(_configuration))
+ {
+ try
+ {
+ var currData = localDbCtx
+ .DbSetEnrollReq
+ .Where(x => x.IdReq == newRec.IdReq && newRec.IdReq > 0)
+ .FirstOrDefault();
+ if (currData != null)
+ {
+ currData.Passcode = newRec.Passcode;
+ currData.ReqPayload = newRec.ReqPayload;
+ currData.DtReq = newRec.DtReq;
+ currData.DtAppr = newRec.DtAppr;
+ currData.UserAppr = newRec.UserAppr;
+ currData.IdxLic = newRec.IdxLic;
+ // segno aggiornato
+ localDbCtx.Entry(currData).State = EntityState.Modified;
+ }
+ else
+ {
+ localDbCtx
+ .DbSetEnrollReq
+ .Add(newRec);
+ }
+ localDbCtx.SaveChanges();
+ answ = true;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Errore in EnrollReqUpsert | Passcode: {newRec.Passcode} | DtReq: {newRec.DtReq}{Environment.NewLine}{exc}");
+ }
+ }
+ return answ;
+ }
+
///
/// Elenco files attach da registrare
///
diff --git a/LiMan.DB/DBModels/EnrollRequestModel.cs b/LiMan.DB/DBModels/EnrollRequestModel.cs
new file mode 100644
index 0000000..61f34f1
--- /dev/null
+++ b/LiMan.DB/DBModels/EnrollRequestModel.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+//
+// This is here so CodeMaid doesn't reorganize this document
+//
+namespace LiMan.DB.DBModels
+{
+ [Table("EnrollRequest")]
+ public partial class EnrollRequestModel
+ {
+ ///
+ /// ID univoco
+ ///
+ [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int IdReq { get; set; }
+
+ ///
+ /// Passcode usato epr autorizzare (rnd al momento della richiesta)
+ ///
+ public int Passcode { get; set; } = 0;
+
+ ///
+ /// Payload richiesta, ovvero la serializzazione json di un Dict[string,string] delle info ricevute
+ ///
+ public string ReqPayload { get; set; } = "";
+
+ ///
+ /// DataOra richiesta enroll
+ ///
+ public DateTime DtReq { get; set; } = DateTime.Now;
+
+ ///
+ /// DataOra approvazione
+ ///
+ public DateTime? DtAppr { get; set; } = null;
+
+ ///
+ /// Username approvatore
+ ///
+ public string UserAppr { get; set; } = "";
+
+ ///
+ /// Licenza fornita in risposta alla richiesta
+ ///
+ public int IdxLic { get; set; } = 0;
+
+ ///
+ /// Indica Scaduta se non approvata e richiesta da oltre 15 minuti
+ ///
+ [NotMapped]
+ public bool IsScaduta
+ {
+ get => DtAppr == null && DateTime.Now.Subtract(DtReq).TotalMinutes > 15;
+ }
+ }
+}
diff --git a/LiMan.DB/LMDbContext.cs b/LiMan.DB/LMDbContext.cs
index b33a842..712f0d2 100644
--- a/LiMan.DB/LMDbContext.cs
+++ b/LiMan.DB/LMDbContext.cs
@@ -61,6 +61,7 @@ namespace LiMan.DB
public virtual DbSet DbSetRoles { get; set; }
public virtual DbSet DbSetClaims { get; set; }
public virtual DbSet DbSetReleases { get; set; }
+ public virtual DbSet DbSetEnrollReq { get; set; }
#endregion Public Properties
diff --git a/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.Designer.cs b/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.Designer.cs
new file mode 100644
index 0000000..23f79f0
--- /dev/null
+++ b/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.Designer.cs
@@ -0,0 +1,583 @@
+//
+using System;
+using LiMan.DB;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace LiMan.DB.Migrations
+{
+ [DbContext(typeof(LMDbContext))]
+ [Migration("20241231105435_AddEnrollRequest")]
+ partial class AddEnrollRequest
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseCollation("SQL_Latin1_General_CP1_CI_AS")
+ .HasAnnotation("ProductVersion", "6.0.28")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+ modelBuilder.Entity("LiMan.DB.DBModels.ApplicativoModel", b =>
+ {
+ b.Property("CodApp")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Descrizione")
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("Tipo")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TplConnString")
+ .HasMaxLength(2500)
+ .HasColumnType("nvarchar(2500)");
+
+ b.HasKey("CodApp");
+
+ b.ToTable("Applicativi");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthClaimModel", b =>
+ {
+ b.Property("ClaimID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ClaimID"), 1L, 1);
+
+ b.Property("DtIns")
+ .HasColumnType("datetime2");
+
+ b.Property("DtMod")
+ .HasColumnType("datetime2");
+
+ b.Property("RoleID")
+ .HasColumnType("int");
+
+ b.Property("UserID")
+ .HasColumnType("int");
+
+ b.HasKey("ClaimID");
+
+ b.HasIndex("RoleID");
+
+ b.HasIndex("UserID");
+
+ b.ToTable("AuthClaims");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthRoleModel", b =>
+ {
+ b.Property("RoleID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("RoleID"), 1L, 1);
+
+ b.Property("Descrizione")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Ruolo")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("RoleID");
+
+ b.ToTable("AuthRoles");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthUserModel", b =>
+ {
+ b.Property("UserID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("UserID"), 1L, 1);
+
+ b.Property("AD_Domain")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AD_User")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Cognome")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Nome")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Username")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("UserID");
+
+ b.ToTable("AuthUsers");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.EnrollRequestModel", b =>
+ {
+ b.Property("IdReq")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdReq"), 1L, 1);
+
+ b.Property("DtAppr")
+ .HasColumnType("datetime2");
+
+ b.Property("DtReq")
+ .HasColumnType("datetime2");
+
+ b.Property("IdxLic")
+ .HasColumnType("int");
+
+ b.Property("Passcode")
+ .HasColumnType("int");
+
+ b.Property("ReqPayload")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserAppr")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("IdReq");
+
+ b.ToTable("EnrollRequest");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.FileAttachModel", b =>
+ {
+ b.Property("IdxFileAttach")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxFileAttach"), 1L, 1);
+
+ b.Property("DtEvent")
+ .HasColumnType("datetime2");
+
+ b.Property("FullStoragePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IdxTicket")
+ .HasColumnType("int");
+
+ b.Property("OriginalName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("StorageName")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("IdxFileAttach");
+
+ b.HasIndex("IdxTicket");
+
+ b.ToTable("FileAttach");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.InstallazioneModel", b =>
+ {
+ b.Property("CodInst")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Cliente")
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("Contatto")
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("Descrizione")
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("Email")
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.HasKey("CodInst");
+
+ b.ToTable("Installazioni");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LicenzaModel", b =>
+ {
+ b.Property("IdxLic")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxLic"), 1L, 1);
+
+ b.Property("Chiave")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CodApp")
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CodInst")
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("DataEnigma")
+ .HasColumnType("datetime2");
+
+ b.Property("Descrizione")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Enigma")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Locked")
+ .HasColumnType("bit");
+
+ b.Property("NumLicenze")
+ .HasColumnType("int");
+
+ b.Property("Payload")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Scadenza")
+ .HasColumnType("datetime2");
+
+ b.Property("Tipo")
+ .HasColumnType("int");
+
+ b.HasKey("IdxLic");
+
+ b.HasIndex("CodApp");
+
+ b.HasIndex("CodInst");
+
+ b.ToTable("Licenze");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LogCallModel", b =>
+ {
+ b.Property("DataRif")
+ .HasColumnType("datetime2");
+
+ b.Property("CodInst")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("CodApp")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("TargetUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("NumCall")
+ .HasColumnType("int");
+
+ b.HasKey("DataRif", "CodInst", "CodApp", "TargetUrl");
+
+ b.ToTable("LogCall");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LogLicenzaModel", b =>
+ {
+ b.Property("IdxLogLic")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxLogLic"), 1L, 1);
+
+ b.Property("Chiave")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CodApp")
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CodInst")
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Descrizione")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IdxLic")
+ .HasColumnType("int");
+
+ b.Property("NumLicenze")
+ .HasColumnType("int");
+
+ b.Property("Scadenza")
+ .HasColumnType("datetime2");
+
+ b.Property("Tipo")
+ .HasColumnType("int");
+
+ b.HasKey("IdxLogLic");
+
+ b.HasIndex("CodApp");
+
+ b.HasIndex("CodInst");
+
+ b.HasIndex("IdxLic");
+
+ b.ToTable("LogLicenze");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.ReleaseModel", b =>
+ {
+ b.Property("IdxRel")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxRel"), 1L, 1);
+
+ b.Property("CodApp")
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("RelTags")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ReleaseDate")
+ .HasColumnType("datetime2");
+
+ b.Property("VersNum")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("VersText")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("IdxRel");
+
+ b.HasIndex("CodApp");
+
+ b.ToTable("Releases");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.StatsCallModel", b =>
+ {
+ b.Property("YearRef")
+ .HasColumnType("int");
+
+ b.Property("CodInst")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("CodApp")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("TotCall")
+ .HasColumnType("int");
+
+ b.HasKey("YearRef", "CodInst", "CodApp");
+
+ b.ToView("v_StatsCall");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.SubLicenzaModel", b =>
+ {
+ b.Property("IdxSubLic")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxSubLic"), 1L, 1);
+
+ b.Property("Chiave")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CodImpiego")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IdxLic")
+ .HasColumnType("int");
+
+ b.Property("Tipo")
+ .HasColumnType("int");
+
+ b.Property("VetoUnlock")
+ .HasColumnType("datetime2");
+
+ b.HasKey("IdxSubLic");
+
+ b.HasIndex("IdxLic");
+
+ b.ToTable("SubLicenze");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.TicketModel", b =>
+ {
+ b.Property("IdxTicket")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdxTicket"), 1L, 1);
+
+ b.Property("CodImpiego")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactEmail")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactPhone")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DtReq")
+ .HasColumnType("datetime2");
+
+ b.Property("IdxLic")
+ .HasColumnType("int");
+
+ b.Property("IdxSubLic")
+ .HasColumnType("int");
+
+ b.Property("ReqBody")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("SupplAnsw")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SupplEmail")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SupplUserCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TType")
+ .HasColumnType("int");
+
+ b.Property("Tipo")
+ .HasColumnType("int");
+
+ b.HasKey("IdxTicket");
+
+ b.HasIndex("IdxLic");
+
+ b.ToTable("TicketLog");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthClaimModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.AuthRoleModel", "RoleNav")
+ .WithMany("Claims")
+ .HasForeignKey("RoleID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("LiMan.DB.DBModels.AuthUserModel", "UserNav")
+ .WithMany("Claims")
+ .HasForeignKey("UserID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("RoleNav");
+
+ b.Navigation("UserNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.FileAttachModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.TicketModel", "TicketNav")
+ .WithMany()
+ .HasForeignKey("IdxTicket")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("TicketNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LicenzaModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.ApplicativoModel", "ApplicativoNav")
+ .WithMany()
+ .HasForeignKey("CodApp");
+
+ b.HasOne("LiMan.DB.DBModels.InstallazioneModel", "InstallazioneNav")
+ .WithMany()
+ .HasForeignKey("CodInst");
+
+ b.Navigation("ApplicativoNav");
+
+ b.Navigation("InstallazioneNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LogLicenzaModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.ApplicativoModel", "ApplicativoNav")
+ .WithMany()
+ .HasForeignKey("CodApp");
+
+ b.HasOne("LiMan.DB.DBModels.InstallazioneModel", "InstallazioneNav")
+ .WithMany()
+ .HasForeignKey("CodInst");
+
+ b.HasOne("LiMan.DB.DBModels.LicenzaModel", "LicenzaNav")
+ .WithMany()
+ .HasForeignKey("IdxLic")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApplicativoNav");
+
+ b.Navigation("InstallazioneNav");
+
+ b.Navigation("LicenzaNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.ReleaseModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.ApplicativoModel", "ApplicativoNav")
+ .WithMany()
+ .HasForeignKey("CodApp");
+
+ b.Navigation("ApplicativoNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.SubLicenzaModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.LicenzaModel", "LicenzaNav")
+ .WithMany("Attivazioni")
+ .HasForeignKey("IdxLic")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("LicenzaNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.TicketModel", b =>
+ {
+ b.HasOne("LiMan.DB.DBModels.LicenzaModel", "LicenzaNav")
+ .WithMany("Tickets")
+ .HasForeignKey("IdxLic")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("LicenzaNav");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthRoleModel", b =>
+ {
+ b.Navigation("Claims");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.AuthUserModel", b =>
+ {
+ b.Navigation("Claims");
+ });
+
+ modelBuilder.Entity("LiMan.DB.DBModels.LicenzaModel", b =>
+ {
+ b.Navigation("Attivazioni");
+
+ b.Navigation("Tickets");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.cs b/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.cs
new file mode 100644
index 0000000..f861641
--- /dev/null
+++ b/LiMan.DB/Migrations/20241231105435_AddEnrollRequest.cs
@@ -0,0 +1,37 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace LiMan.DB.Migrations
+{
+ public partial class AddEnrollRequest : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "EnrollRequest",
+ columns: table => new
+ {
+ IdReq = table.Column(type: "int", nullable: false)
+ .Annotation("SqlServer:Identity", "1, 1"),
+ Passcode = table.Column(type: "int", nullable: false),
+ ReqPayload = table.Column(type: "nvarchar(max)", nullable: true),
+ DtReq = table.Column(type: "datetime2", nullable: false),
+ DtAppr = table.Column(type: "datetime2", nullable: true),
+ UserAppr = table.Column(type: "nvarchar(max)", nullable: true),
+ IdxLic = table.Column(type: "int", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_EnrollRequest", x => x.IdReq);
+ });
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "EnrollRequest");
+ }
+ }
+}
diff --git a/LiMan.DB/Migrations/LMDbContextModelSnapshot.cs b/LiMan.DB/Migrations/LMDbContextModelSnapshot.cs
index 6857136..fb4f44c 100644
--- a/LiMan.DB/Migrations/LMDbContextModelSnapshot.cs
+++ b/LiMan.DB/Migrations/LMDbContextModelSnapshot.cs
@@ -121,6 +121,37 @@ namespace LiMan.DB.Migrations
b.ToTable("AuthUsers");
});
+ modelBuilder.Entity("LiMan.DB.DBModels.EnrollRequestModel", b =>
+ {
+ b.Property("IdReq")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("IdReq"), 1L, 1);
+
+ b.Property("DtAppr")
+ .HasColumnType("datetime2");
+
+ b.Property("DtReq")
+ .HasColumnType("datetime2");
+
+ b.Property("IdxLic")
+ .HasColumnType("int");
+
+ b.Property("Passcode")
+ .HasColumnType("int");
+
+ b.Property("ReqPayload")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserAppr")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("IdReq");
+
+ b.ToTable("EnrollRequest");
+ });
+
modelBuilder.Entity("LiMan.DB.DBModels.FileAttachModel", b =>
{
b.Property("IdxFileAttach")
diff --git a/LiMan.Transfer/Resources/ChangeLog.html b/LiMan.Transfer/Resources/ChangeLog.html
index 83d93bd..1138aa4 100644
--- a/LiMan.Transfer/Resources/ChangeLog.html
+++ b/LiMan.Transfer/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
-
Versione: 1.1.2410.1618
+ Versione: 1.1.2412.3111
Note di rilascio:
diff --git a/LiMan.Transfer/Resources/VersNum.txt b/LiMan.Transfer/Resources/VersNum.txt
index 17444b0..111d0aa 100644
--- a/LiMan.Transfer/Resources/VersNum.txt
+++ b/LiMan.Transfer/Resources/VersNum.txt
@@ -1 +1 @@
-1.1.2410.1618
+1.1.2412.3111
diff --git a/LiMan.Transfer/Resources/manifest.xml b/LiMan.Transfer/Resources/manifest.xml
index f40945f..583952b 100644
--- a/LiMan.Transfer/Resources/manifest.xml
+++ b/LiMan.Transfer/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 1.1.2410.1618
+ 1.1.2412.3111
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.Transfer.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false
diff --git a/LiMan.UI/LiMan.UI.csproj b/LiMan.UI/LiMan.UI.csproj
index 09b94ce..2b5fcff 100644
--- a/LiMan.UI/LiMan.UI.csproj
+++ b/LiMan.UI/LiMan.UI.csproj
@@ -2,7 +2,7 @@
net6.0
- 1.1.2410.2117
+ 1.1.2412.3111
LiMan.UI
LiMan.UI
diff --git a/LiMan.UI/Resources/ChangeLog.html b/LiMan.UI/Resources/ChangeLog.html
index 04a50cc..26dd0da 100644
--- a/LiMan.UI/Resources/ChangeLog.html
+++ b/LiMan.UI/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
License Manager
-
Versione: 1.1.2410.2117
+ Versione: 1.1.2412.3111
Note di rilascio:
-
diff --git a/LiMan.UI/Resources/VersNum.txt b/LiMan.UI/Resources/VersNum.txt
index bef4536..111d0aa 100644
--- a/LiMan.UI/Resources/VersNum.txt
+++ b/LiMan.UI/Resources/VersNum.txt
@@ -1 +1 @@
-1.1.2410.2117
+1.1.2412.3111
diff --git a/LiMan.UI/Resources/manifest.xml b/LiMan.UI/Resources/manifest.xml
index 6826f0a..9ab1cc4 100644
--- a/LiMan.UI/Resources/manifest.xml
+++ b/LiMan.UI/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 1.1.2410.2117
+ 1.1.2412.3111
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.UI.zip
https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html
false