diff --git a/MP.FileData/DatabaseModels/FileModel.cs b/MP.FileData/DatabaseModels/FileModel.cs
index 65891d6d..3ccf4eb4 100644
--- a/MP.FileData/DatabaseModels/FileModel.cs
+++ b/MP.FileData/DatabaseModels/FileModel.cs
@@ -32,7 +32,7 @@ namespace MP.FileData.DatabaseModels
public string MimeType { get; set; } = "";
public bool Changed { get; set; } = false;
public DateTime LastCheck { get; set; } = DateTime.Now.AddYears(-1);
- public byte[] Content { get; set; }
+ public byte[] FileContent { get; set; }
[ForeignKey("CodArticolo")]
public virtual ArticoloModel Articolo { get; set; }
diff --git a/MP.FileData/MP.FileData.csproj b/MP.FileData/MP.FileData.csproj
index 09d3bd68..c6cd20ce 100644
--- a/MP.FileData/MP.FileData.csproj
+++ b/MP.FileData/MP.FileData.csproj
@@ -22,6 +22,7 @@
+
diff --git a/MP.FileData/Migrations/20210903094836_InitDb.Designer.cs b/MP.FileData/Migrations/20210903094836_InitDb.Designer.cs
new file mode 100644
index 00000000..efee4fe5
--- /dev/null
+++ b/MP.FileData/Migrations/20210903094836_InitDb.Designer.cs
@@ -0,0 +1,144 @@
+//
+using System;
+using MP.FileData;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace MP.FileData.Migrations
+{
+ [DbContext(typeof(MoonPro_ProgContext))]
+ [Migration("20210903094836_InitDb")]
+ partial class InitDb
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("ProductVersion", "5.0.9")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.ArticoloModel", b =>
+ {
+ b.Property("CodArticolo")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("DescArticolo")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Disegno")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Tipo")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("CodArticolo");
+
+ b.ToTable("Articoli");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.FileModel", b =>
+ {
+ b.Property("FileId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Active")
+ .HasColumnType("bit");
+
+ b.Property("Changed")
+ .HasColumnType("bit");
+
+ b.Property("CodArticolo")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("FileContent")
+ .HasColumnType("varbinary(max)");
+
+ b.Property("IdxMacchina")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("LastCheck")
+ .HasColumnType("datetime2");
+
+ b.Property("LastMod")
+ .HasColumnType("datetime2");
+
+ b.Property("MimeType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Path")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Rev")
+ .HasColumnType("int");
+
+ b.Property("Size")
+ .HasColumnType("int");
+
+ b.HasKey("FileId");
+
+ b.HasIndex("CodArticolo");
+
+ b.HasIndex("IdxMacchina");
+
+ b.ToTable("Files");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.MacchinaModel", b =>
+ {
+ b.Property("IdxMacchina")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("BasePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CodMacchina")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Descrizione")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ImgUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Nome")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Note")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ShowOrder")
+ .HasColumnType("int");
+
+ b.HasKey("IdxMacchina");
+
+ b.ToTable("Macchine");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.FileModel", b =>
+ {
+ b.HasOne("MP.FileData.DatabaseModels.ArticoloModel", "Articolo")
+ .WithMany()
+ .HasForeignKey("CodArticolo");
+
+ b.HasOne("MP.FileData.DatabaseModels.MacchinaModel", "Macchina")
+ .WithMany()
+ .HasForeignKey("IdxMacchina");
+
+ b.Navigation("Articolo");
+
+ b.Navigation("Macchina");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/MP.FileData/Migrations/20210903094836_InitDb.cs b/MP.FileData/Migrations/20210903094836_InitDb.cs
new file mode 100644
index 00000000..12a3112d
--- /dev/null
+++ b/MP.FileData/Migrations/20210903094836_InitDb.cs
@@ -0,0 +1,101 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace MP.FileData.Migrations
+{
+ public partial class InitDb : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "Articoli",
+ columns: table => new
+ {
+ CodArticolo = table.Column(type: "nvarchar(450)", nullable: false),
+ DescArticolo = table.Column(type: "nvarchar(max)", nullable: true),
+ Disegno = table.Column(type: "nvarchar(max)", nullable: true),
+ Tipo = table.Column(type: "nvarchar(max)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Articoli", x => x.CodArticolo);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Macchine",
+ columns: table => new
+ {
+ IdxMacchina = table.Column(type: "nvarchar(450)", nullable: false),
+ CodMacchina = table.Column(type: "nvarchar(max)", nullable: true),
+ Nome = table.Column(type: "nvarchar(max)", nullable: true),
+ Descrizione = table.Column(type: "nvarchar(max)", nullable: true),
+ BasePath = table.Column(type: "nvarchar(max)", nullable: true),
+ ImgUrl = table.Column(type: "nvarchar(max)", nullable: true),
+ Note = table.Column(type: "nvarchar(max)", nullable: true),
+ ShowOrder = table.Column(type: "int", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Macchine", x => x.IdxMacchina);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Files",
+ columns: table => new
+ {
+ FileId = table.Column(type: "int", nullable: false)
+ .Annotation("SqlServer:Identity", "1, 1"),
+ Active = table.Column(type: "bit", nullable: false),
+ CodArticolo = table.Column(type: "nvarchar(450)", nullable: true),
+ IdxMacchina = table.Column(type: "nvarchar(450)", nullable: true),
+ Name = table.Column(type: "nvarchar(max)", nullable: true),
+ Rev = table.Column(type: "int", nullable: false),
+ LastMod = table.Column(type: "datetime2", nullable: false),
+ Size = table.Column(type: "int", nullable: false),
+ Path = table.Column(type: "nvarchar(max)", nullable: true),
+ MimeType = table.Column(type: "nvarchar(max)", nullable: true),
+ Changed = table.Column(type: "bit", nullable: false),
+ LastCheck = table.Column(type: "datetime2", nullable: false),
+ FileContent = table.Column(type: "varbinary(max)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Files", x => x.FileId);
+ table.ForeignKey(
+ name: "FK_Files_Articoli_CodArticolo",
+ column: x => x.CodArticolo,
+ principalTable: "Articoli",
+ principalColumn: "CodArticolo",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "FK_Files_Macchine_IdxMacchina",
+ column: x => x.IdxMacchina,
+ principalTable: "Macchine",
+ principalColumn: "IdxMacchina",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Files_CodArticolo",
+ table: "Files",
+ column: "CodArticolo");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Files_IdxMacchina",
+ table: "Files",
+ column: "IdxMacchina");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "Files");
+
+ migrationBuilder.DropTable(
+ name: "Articoli");
+
+ migrationBuilder.DropTable(
+ name: "Macchine");
+ }
+ }
+}
diff --git a/MP.FileData/Migrations/MoonPro_ProgContextModelSnapshot.cs b/MP.FileData/Migrations/MoonPro_ProgContextModelSnapshot.cs
new file mode 100644
index 00000000..d9cc5501
--- /dev/null
+++ b/MP.FileData/Migrations/MoonPro_ProgContextModelSnapshot.cs
@@ -0,0 +1,142 @@
+//
+using System;
+using MP.FileData;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace MP.FileData.Migrations
+{
+ [DbContext(typeof(MoonPro_ProgContext))]
+ partial class MoonPro_ProgContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("ProductVersion", "5.0.9")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.ArticoloModel", b =>
+ {
+ b.Property("CodArticolo")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("DescArticolo")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Disegno")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Tipo")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("CodArticolo");
+
+ b.ToTable("Articoli");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.FileModel", b =>
+ {
+ b.Property("FileId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Active")
+ .HasColumnType("bit");
+
+ b.Property("Changed")
+ .HasColumnType("bit");
+
+ b.Property("CodArticolo")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("FileContent")
+ .HasColumnType("varbinary(max)");
+
+ b.Property("IdxMacchina")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("LastCheck")
+ .HasColumnType("datetime2");
+
+ b.Property("LastMod")
+ .HasColumnType("datetime2");
+
+ b.Property("MimeType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Path")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Rev")
+ .HasColumnType("int");
+
+ b.Property("Size")
+ .HasColumnType("int");
+
+ b.HasKey("FileId");
+
+ b.HasIndex("CodArticolo");
+
+ b.HasIndex("IdxMacchina");
+
+ b.ToTable("Files");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.MacchinaModel", b =>
+ {
+ b.Property("IdxMacchina")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("BasePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CodMacchina")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Descrizione")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ImgUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Nome")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Note")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ShowOrder")
+ .HasColumnType("int");
+
+ b.HasKey("IdxMacchina");
+
+ b.ToTable("Macchine");
+ });
+
+ modelBuilder.Entity("MP.FileData.DatabaseModels.FileModel", b =>
+ {
+ b.HasOne("MP.FileData.DatabaseModels.ArticoloModel", "Articolo")
+ .WithMany()
+ .HasForeignKey("CodArticolo");
+
+ b.HasOne("MP.FileData.DatabaseModels.MacchinaModel", "Macchina")
+ .WithMany()
+ .HasForeignKey("IdxMacchina");
+
+ b.Navigation("Articolo");
+
+ b.Navigation("Macchina");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/MP.FileData/MoonPro_ProgContext.cs b/MP.FileData/MoonPro_ProgContext.cs
index 1cd809cd..f3438de3 100644
--- a/MP.FileData/MoonPro_ProgContext.cs
+++ b/MP.FileData/MoonPro_ProgContext.cs
@@ -18,19 +18,42 @@ namespace MP.FileData
private IConfiguration _configuration;
+ [Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
+ public MoonPro_ProgContext()
+ {
+ }
public MoonPro_ProgContext(IConfiguration configuration)
{
_configuration = configuration;
+ try
+ {
+ // se non ci fosse... crea o migra!
+ Database.Migrate();
+ }
+ catch (Exception exc)
+ {
+ Log.Error(exc, "Exception during context initialization 01");
+ }
}
public MoonPro_ProgContext(DbContextOptions options) : base(options)
{
+ try
+ {
+ // se non ci fosse... crea o migra!
+ Database.Migrate();
+ }
+ catch (Exception exc)
+ {
+ Log.Error(exc, "Exception during context initialization 01");
+ }
}
- public virtual DbSet DbSetArticoli { get; set; }
- public virtual DbSet DbSetMacchine { get; set; }
+ public virtual DbSet DbSetArticoli { get; set; }
+ public virtual DbSet DbSetMacchine { get; set; }
+ public virtual DbSet DbSetProgFile { get; set; }
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
@@ -42,9 +65,14 @@ namespace MP.FileData
if (!optionsBuilder.IsConfigured)
{
string connString = _configuration.GetConnectionString("Mp.Stats");
-
- optionsBuilder.UseSqlServer(connString);
- //optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=MoonPro_STATS;Trusted_Connection=True;");
+ if (!string.IsNullOrEmpty(connString))
+ {
+ optionsBuilder.UseSqlServer(connString);
+ }
+ else
+ {
+ optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=MoonPro_PROG;Trusted_Connection=True;");
+ }
}
}
@@ -52,46 +80,6 @@ namespace MP.FileData
{
modelBuilder.HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS");
- modelBuilder.Entity(entity =>
- {
- entity.HasNoKey();
-
- entity.ToView("v_UI_AnagArticoli");
-
- entity.Property(e => e.CodArticolo)
- .IsRequired()
- .HasMaxLength(50);
-
- entity.Property(e => e.DescArticolo)
- .IsRequired()
- .HasMaxLength(250);
-
- entity.Property(e => e.Disegno)
- .IsRequired()
- .HasMaxLength(50);
-
- entity.Property(e => e.Tipo)
- .IsRequired()
- .HasMaxLength(50);
- });
-
- modelBuilder.Entity(entity =>
- {
- entity.HasNoKey();
-
- entity.ToView("v_UI_Macchine");
-
- entity.Property(e => e.CodMacchina).HasMaxLength(50);
-
- entity.Property(e => e.Descrizione).HasMaxLength(50);
-
- entity.Property(e => e.IdxMacchina)
- .IsRequired()
- .HasMaxLength(50);
-
- entity.Property(e => e.Nome).HasMaxLength(50);
- });
-
OnModelCreatingPartial(modelBuilder);
}
}