diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs
index 2acfaf80..093201f2 100644
--- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs
+++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs
@@ -8,6 +8,9 @@ using static EgtBEAMWALL.Core.ConstBeam;
namespace EgtBEAMWALL.DataLayer.DatabaseModels
{
+ //
+ // This is here so CodeMaid doesn't reorganize this document
+ //
///
/// Tabella deiu raggruppamenti PROJ in forma di PROD
///
@@ -16,12 +19,19 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
{
#region Public Properties
+ ///
+ /// Chiave univoca DB
+ ///
+ [Key, Column("ProdDbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int ProdDbId { get; set; }
+
[Column("Description")]
public string Description { get; set; } = "";
///
/// Data Creazione
///
+ [Index]
[Column("DtCreated")]
public DateTime DtCreated { get; set; }
@@ -37,6 +47,24 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
[Column("Lock")]
public bool Locked { get; set; } = false;
+ ///
+ /// Chiave univoca per EgtBM
+ ///
+ [Column("Id")]
+ [Index]
+ public int ProdId { get; set; }
+
+ ///
+ /// Tipologia del progetto (Travi, Pareti, ...)
+ ///
+ public BWType PType { get; set; } = BWType.NULL;
+
+ ///
+ /// Macchina
+ ///
+ [Column("Machine")]
+ public string Machine { get; set; } = "";
+
///
/// ID utente che ha bloccato (NumKey), quando aperto da un dispositivo in rete
///
@@ -50,27 +78,25 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
public DateTime LockDate { get; set; } = DateTime.MinValue;
///
- /// Macchina
+ /// Record attivo (se false == cancellazione logica)
///
- [Column("Machine")]
- public string Machine { get; set; } = "";
+ [Index]
+ [Column("IsActive")]
+ public bool IsActive { get; set; } = true;
///
- /// Chiave univoca DB
+ /// Stato Prodotto = inviato ALMENO UNA VOLTA al supervisore --> NON eliminabile se non in modo logico
///
- [Key, Column("ProdDbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public int ProdDbId { get; set; }
+ [Index]
+ [Column("IsProduced")]
+ public bool IsProduced { get; set; } = false;
///
- /// chiave univoca per EgtBM
+ /// Stato Archiviato = NON visualizzabile normalmente, già prodotto
///
- [Column("Id")]
- public int ProdId { get; set; }
-
- ///
- /// Tipologia del progetto (Travi, Pareti, ...)
- ///
- public BWType PType { get; set; } = BWType.NULL;
+ [Index]
+ [Column("IsArchived")]
+ public bool IsArchived { get; set; } = false;
#endregion Public Properties
}
diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs
index 39529925..4269ec9f 100644
--- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs
+++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs
@@ -5,6 +5,9 @@ using static EgtBEAMWALL.Core.ConstBeam;
namespace EgtBEAMWALL.DataLayer.DatabaseModels
{
+ //
+ // This is here so CodeMaid doesn't reorganize this document
+ //
///
/// Tabella dei PROJ caricati dal BTL
///
@@ -13,6 +16,9 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
{
#region Public Properties
+ [Key, Column("ProjDbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int ProjDbId { get; set; }
+
[Column("BTLFileName")]
public string BTLFileName { get; set; } = "";
@@ -20,23 +26,27 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
/// Data Creazione
///
[Column("DtCreated")]
+ [Index]
public DateTime DtCreated { get; set; }
///
/// Data Esportazione
///
[Column("DtExported")]
+ [Index]
public DateTime DtExported { get; set; }
///
/// Record attivo (se false == cancellazione logica)
///
+ [Index]
[Column("IsActive")]
public bool IsActive { get; set; } = true;
///
/// Stato NEW = creato ma NON salvato
///
+ [Index]
[Column("IsNew")]
public bool IsNew { get; set; } = true;
@@ -77,9 +87,6 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
[Column("ProdDbId")]
public int? ProdDbId { get; set; }
- [Key, Column("ProjDbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public int ProjDbId { get; set; }
-
///
/// Descrizione progetto (copiata da BTLFileName inizialmente)
///
@@ -87,6 +94,7 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
public string ProjDescription { get; set; } = "";
[Column("Id")]
+ [Index]
public int ProjId { get; set; }
///
diff --git a/EgtBEAMWALL.DataLayer/DbConfig.cs b/EgtBEAMWALL.DataLayer/DbConfig.cs
index 64947d18..c926356a 100644
--- a/EgtBEAMWALL.DataLayer/DbConfig.cs
+++ b/EgtBEAMWALL.DataLayer/DbConfig.cs
@@ -33,7 +33,7 @@ namespace EgtBEAMWALL.DataLayer
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
///
- /// DB Connection string, per effettuare migration riportare valore connessione admin cablato
+ /// DB Connection string, per effettuare migration riportare valore connessione admin cablato (con database=EgtBwDb_000102;)
///
public static string CONNECTION_STRING { get; set; } = "";
diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj
index bb64eb8b..04faeae8 100644
--- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj
+++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj
@@ -179,6 +179,10 @@
202306081452095_UpdateProjModel.cs
+
+
+ 202308241516227_AddProdStatusVarAndIndex.cs
+
@@ -221,6 +225,9 @@
202306081452095_UpdateProjModel.cs
+
+ 202308241516227_AddProdStatusVarAndIndex.cs
+
diff --git a/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.Designer.cs
new file mode 100644
index 00000000..e282993b
--- /dev/null
+++ b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.Designer.cs
@@ -0,0 +1,29 @@
+//
+namespace EgtBEAMWALL.DataLayer.Migrations
+{
+ using System.CodeDom.Compiler;
+ using System.Data.Entity.Migrations;
+ using System.Data.Entity.Migrations.Infrastructure;
+ using System.Resources;
+
+ [GeneratedCode("EntityFramework.Migrations", "6.4.4")]
+ public sealed partial class AddProdStatusVarAndIndex : IMigrationMetadata
+ {
+ private readonly ResourceManager Resources = new ResourceManager(typeof(AddProdStatusVarAndIndex));
+
+ string IMigrationMetadata.Id
+ {
+ get { return "202308241516227_AddProdStatusVarAndIndex"; }
+ }
+
+ string IMigrationMetadata.Source
+ {
+ get { return null; }
+ }
+
+ string IMigrationMetadata.Target
+ {
+ get { return Resources.GetString("Target"); }
+ }
+ }
+}
diff --git a/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.cs b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.cs
new file mode 100644
index 00000000..b5529252
--- /dev/null
+++ b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.cs
@@ -0,0 +1,42 @@
+namespace EgtBEAMWALL.DataLayer.Migrations
+{
+ using System;
+ using System.Data.Entity.Migrations;
+
+ public partial class AddProdStatusVarAndIndex : DbMigration
+ {
+ public override void Up()
+ {
+ AddColumn("dbo.ProdList", "IsActive", c => c.Boolean(nullable: false));
+ AddColumn("dbo.ProdList", "IsProduced", c => c.Boolean(nullable: false));
+ AddColumn("dbo.ProdList", "IsArchived", c => c.Boolean(nullable: false));
+ CreateIndex("dbo.ProjList", "DtCreated");
+ CreateIndex("dbo.ProjList", "DtExported");
+ CreateIndex("dbo.ProjList", "IsActive");
+ CreateIndex("dbo.ProjList", "IsNew");
+ CreateIndex("dbo.ProjList", "Id");
+ CreateIndex("dbo.ProdList", "DtCreated");
+ CreateIndex("dbo.ProdList", "Id");
+ CreateIndex("dbo.ProdList", "IsActive");
+ CreateIndex("dbo.ProdList", "IsProduced");
+ CreateIndex("dbo.ProdList", "IsArchived");
+ }
+
+ public override void Down()
+ {
+ DropIndex("dbo.ProdList", new[] { "IsArchived" });
+ DropIndex("dbo.ProdList", new[] { "IsProduced" });
+ DropIndex("dbo.ProdList", new[] { "IsActive" });
+ DropIndex("dbo.ProdList", new[] { "Id" });
+ DropIndex("dbo.ProdList", new[] { "DtCreated" });
+ DropIndex("dbo.ProjList", new[] { "Id" });
+ DropIndex("dbo.ProjList", new[] { "IsNew" });
+ DropIndex("dbo.ProjList", new[] { "IsActive" });
+ DropIndex("dbo.ProjList", new[] { "DtExported" });
+ DropIndex("dbo.ProjList", new[] { "DtCreated" });
+ DropColumn("dbo.ProdList", "IsArchived");
+ DropColumn("dbo.ProdList", "IsProduced");
+ DropColumn("dbo.ProdList", "IsActive");
+ }
+ }
+}
diff --git a/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.resx b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.resx
new file mode 100644
index 00000000..646f71b8
--- /dev/null
+++ b/EgtBEAMWALL.DataLayer/Migrations/202308241516227_AddProdStatusVarAndIndex.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 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
+
+
+ dbo
+
+
\ No newline at end of file