Spostamento progetto NKC Data

This commit is contained in:
Samuele Locatelli
2021-11-25 09:56:01 +01:00
parent 693b5d0eba
commit cae78daefd
19 changed files with 1683 additions and 0 deletions
+295
View File
@@ -0,0 +1,295 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NKC.Data.DbModels;
using NKC.Data.DTO;
using NLog;
namespace NKC.Data.Controllers
{
public class NKCController : IDisposable
{
#region Private Fields
private static IConfiguration _configuration = null!;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Public Constructors
public NKCController(IConfiguration configuration)
{
_configuration = configuration;
}
#endregion Public Constructors
#region Public Methods
public bool DbForceMigrate()
{
bool answ = false;
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
try
{
localDbCtx.DbForceMigrate();
answ = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in DbForceMigrate{Environment.NewLine}{exc}");
}
}
return answ;
}
public void Dispose()
{
Log.Info("Dispose di NKCController");
}
public List<MaterialDTO> MaterialsGetAll()
{
List<MaterialDTO> dbResult = new List<MaterialDTO>();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
dbResult = localDbCtx
.DbSetMaterials
.Where(x => x.MatID > 0)
.Select(x => new MaterialDTO()
{
MatID = x.MatID,
MatExtCode = x.MatExtCode,
MatDesc = x.MatDesc,
LMm = x.LMm,
WMm = x.WMm,
TMm = x.TMm,
ApprovUser = x.ApprovUser,
ApprovDate = x.ApprovDate,
NumSize = x.RemnantNav== null?0: x.RemnantNav.Count,
TotQty = x.RemnantNav == null ? 0 : x.RemnantNav.Sum(r => r.QtyAvail)
}
)
.ToList();
}
return dbResult;
}
public List<MovMagModel> MovMagGetFilt(int RemnId, int numShow)
{
List<MovMagModel> dbResult = new List<MovMagModel>();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
dbResult = localDbCtx
.DbSetMovMag
.Where(x => x.RemnID == RemnId)
.OrderByDescending(o => o.DtRec)
//.Include(m => m.RemnantNav)
.Take(numShow)
.ToList();
}
return dbResult;
}
public bool AddPrintJob(string tipoReport, string keyParam, string prtName)
{
bool done = false;
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
try
{
DateTime adesso = DateTime.Now;
PrintJobQueue newRec = new PrintJobQueue()
{
TipoReport = tipoReport,
KeyParam = keyParam,
PrtName = prtName,
Stato = 0,
DtStart = adesso,
DtLastTry = adesso
};
localDbCtx.DbSetPrintJobQueues.Add(newRec);
localDbCtx.SaveChanges();
done = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in AddPrintJob:{Environment.NewLine}{exc}");
}
}
return done;
}
public List<RemnantsModel> RemnantsGetAll()
{
List<RemnantsModel> dbResult = new List<RemnantsModel>();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
dbResult = localDbCtx
.DbSetRemnants
.ToList();
}
return dbResult;
}
public RemnantsModel RemnantGetByid(int RemnId)
{
RemnantsModel? dbResult = new RemnantsModel();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
dbResult = localDbCtx
.DbSetRemnants
.Where(x => x.RemnID == RemnId)
.Include(m => m.MaterialNav)
.FirstOrDefault();
}
if (dbResult == null)
{
dbResult = new RemnantsModel();
}
return dbResult;
}
public List<RemnantsModel> RemnantsGetFilt(int matId, int minQty)
{
List<RemnantsModel> dbResult = new List<RemnantsModel>();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
dbResult = localDbCtx
.DbSetRemnants
.Where(x => (x.MatID == matId || matId == 0) && (x.QtyAvail >= minQty || minQty == 0))
//.OrderBy(o => o.Area)
.Include(m => m.MaterialNav)
.ToList();
}
return dbResult;
}
public RemnantsModel RemnantGetByQr(string QrCode)
{
RemnantsModel? dbResult = new RemnantsModel();
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
var rawList = localDbCtx
.DbSetRemnants
.Include(m => m.MaterialNav)
.ToList();
dbResult = rawList
.Where(x => x.RemDtmx == QrCode)
.FirstOrDefault();
}
if (dbResult == null)
{
dbResult = new RemnantsModel();
}
return dbResult;
}
public bool RemnantsUpsert(RemnantsModel updItem, string userId)
{
bool done = false;
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
try
{
RemnantsModel? currData = localDbCtx
.DbSetRemnants
.Where(x => x.RemnID == updItem.RemnID)
.FirstOrDefault();
if (currData != null)
{
// aggiungo record variazione quantità...
int delta = updItem.QtyAvail - currData.QtyAvail;
if (delta != 0)
{
MovMagModel recMovMag = new MovMagModel()
{
DtRec = DateTime.Now,
RemnID = updItem.RemnID,
QtyRec = delta,
UserId = userId
};
localDbCtx.DbSetMovMag.Add(recMovMag);
}
// aggiorno valori
currData.MatID = updItem.MatID;
currData.DtMod = updItem.DtMod;
currData.Location = updItem.Location;
currData.Note = updItem.Note;
currData.QtyAvail = updItem.QtyAvail;
currData.LMm = updItem.LMm;
currData.WMm = updItem.WMm;
currData.TMm = updItem.TMm;
localDbCtx.Entry(currData).State = EntityState.Modified;
}
else
{
// aggiungo record variazione quantità...
MovMagModel recMovMag = new MovMagModel()
{
DtRec = DateTime.Now,
RemnID = updItem.RemnID,
QtyRec = updItem.QtyAvail
};
localDbCtx.DbSetMovMag.Add(recMovMag);
// aggiungo record puntuale
currData = new RemnantsModel()
{
MatID = updItem.MatID,
DtMod = updItem.DtMod,
Location = updItem.Location,
Note = updItem.Note,
QtyAvail = updItem.QtyAvail,
LMm = updItem.LMm,
WMm = updItem.WMm,
TMm = updItem.TMm
};
localDbCtx
.DbSetRemnants
.Add(currData);
}
localDbCtx.SaveChanges();
done = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in PlantUpdate:{Environment.NewLine}{exc}");
}
}
return done;
}
/// <summary>
/// Annulla modifiche su una specifica entity (cancel update)
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public bool rollBackEntity(object item)
{
bool answ = false;
using (NKCContext localDbCtx = new NKCContext(_configuration))
{
try
{
if (localDbCtx.Entry(item).State == EntityState.Deleted || localDbCtx.Entry(item).State == EntityState.Modified)
{
localDbCtx.Entry(item).Reload();
}
}
catch (Exception exc)
{
Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}");
}
}
return answ;
}
#endregion Public Methods
}
}
+47
View File
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NKC.Data.DTO
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
public class MaterialDTO
{
public int MatID { get; set; }
public int MatExtCode { get; set; } = 0;
public string MatDesc { get; set; } = "";
public DateTime ApprovDate { get; set; } = DateTime.Now.AddYears(10);
public string ApprovUser { get; set; } = "";
public decimal LMm { get; set; } = 0;
public decimal WMm { get; set; } = 0;
public decimal TMm { get; set; } = 0;
public string MatDtmx
{
get => $"MT{MatExtCode:00000000}";
}
public decimal LIn
{
get => Math.Round(LMm / (decimal)25.4, 3);
}
public decimal WIn
{
get => Math.Round(WMm / (decimal)25.4, 3);
}
public decimal TIn
{
get => Math.Round(TMm / (decimal)25.4, 3);
}
public int NumSize { get; set; } = 0;
public int TotQty { get; set; } = 0;
}
}
+12
View File
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NKC.Data.DTO
{
public class RemnantDTO
{
}
}
+33
View File
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace NKC.Data.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("Materials")]
public partial class MaterialModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int MatID { get; set; }
public int MatExtCode { get; set; } = 0;
public string MatDesc { get; set; } = "";
public DateTime ApprovDate { get; set; } = DateTime.Now.AddYears(10);
public string ApprovUser { get; set; } = "";
public decimal LMm { get; set; } = 0;
public decimal WMm { get; set; }=0;
public decimal TMm { get; set; }=0;
[NotMapped]
public string MatDtmx {
get => $"MT{MatExtCode:00000000}";
}
public virtual ICollection<RemnantsModel>? RemnantNav { get; set; }
}
}
+48
View File
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace NKC.Data.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
//[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))]
[Table("MovMag")]
public partial class MovMagModel
{
/// <summary>
/// Primary Key AUTO
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int MovID { get; set; }
/// <summary>
/// DateTime record
/// </summary>
public DateTime DtRec { get; set; } = DateTime.Now;
/// <summary>
/// Ext ref for Remnants
/// </summary>
public int RemnID { get; set; }
/// <summary>
/// Qty recorded (delta +/-)
/// </summary>
public int QtyRec { get; set; } = 0;
/// <summary>
/// User modificatore
/// </summary>
public string UserId { get; set; } = "";
/// <summary>
/// Navigation property to Remnant
/// </summary>
[ForeignKey("RemnID")]
public virtual RemnantsModel? RemnantNav { get; set; }
}
}
+23
View File
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
namespace NKC.Data.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("PrintJobQueue")]
public partial class PrintJobQueue
{
public int IdxPrintJob { get; set; }
public string TipoReport { get; set; } = null!;
public string KeyParam { get; set; } = null!;
public string PrtName { get; set; } = null!;
public DateTime DtStart { get; set; }
public DateTime? DtEnd { get; set; }
public int Stato { get; set; }
public DateTime? DtLastTry { get; set; }
}
}
+105
View File
@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace NKC.Data.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
//[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))]
[Table("RemnantsList")]
public partial class RemnantsModel
{
/// <summary>
/// Primary Key AUTO
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RemnID { get; set; }
/// <summary>
/// Ext ref for Material
/// </summary>
public int MatID { get; set; }
/// <summary>
/// Location
/// </summary>
public string Location { get; set; } = "";
/// <summary>
/// Qty available on wharehouse
/// </summary>
public int QtyAvail { get; set; } = 0;
/// <summary>
/// DateTime last modification
/// </summary>
public DateTime DtMod { get; set; } = DateTime.Now.AddYears(10);
/// <summary>
/// Remnant's Lenght
/// </summary>
public decimal LMm { get; set; } = 0;
/// <summary>
/// Remnant's Width
/// </summary>
public decimal WMm { get; set; } = 0;
/// <summary>
/// Remnant's Thikness
/// </summary>
public decimal TMm { get; set; } = 0;
[NotMapped]
public decimal LIn
{
get => Math.Round(LMm / (decimal)25.4, 3);
}
[NotMapped]
public decimal WIn
{
get => Math.Round(WMm / (decimal)25.4, 3);
}
[NotMapped]
public decimal TIn
{
get => Math.Round(TMm / (decimal)25.4, 3);
}
/// <summary>
/// Note (optional)
/// </summary>
public string Note { get; set; } = "";
[NotMapped]
public decimal Area
{
get => LMm * WMm;
}
[NotMapped]
public string RemDtmx
{
get
{
string answ = $"MT99999999-{LMm * 1000:00000000}";
if (MaterialNav != null)
{
answ = $"MT{MaterialNav.MatExtCode:00000000}-{LMm * 1000:00000000}";
}
return answ;
}
}
/// <summary>
/// Navigation property to Material
/// </summary>
[ForeignKey("MatID")]
public virtual MaterialModel MaterialNav { get; set; } = null!;
}
}
+28
View File
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NKC.Data
{
public class Enum
{
#region Public Enums
public enum RemnState
{
/// <summary>
/// Non definito
/// </summary>
ND = 0,
/// <summary>
/// Selezionato x operazioni (veto interfaccia ad altri usi)
/// </summary>
Selected
}
#endregion Public Enums
}
}
+80
View File
@@ -0,0 +1,80 @@
// <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 NKC.Data;
#nullable disable
namespace NKC.Data.Migrations
{
[DbContext(typeof(NKCContext))]
[Migration("20211118172800_InitDb")]
partial class InitDb
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Property<int>("MatID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
b.Property<DateTime>("ApprovDate")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
b.Property<string>("ApprovUser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)")
.HasDefaultValueSql("('')");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("L_mm");
b.Property<string>("MatDesc")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasDefaultValueSql("('')")
.HasComment("Description");
b.Property<int>("MatExtCode")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("T_mm");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("W_mm");
b.HasKey("MatID");
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
b.ToTable("Materials");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,44 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace NKC.Data.Migrations
{
public partial class InitDb : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Materials",
columns: table => new
{
MatID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
MatExtCode = table.Column<int>(type: "int", nullable: false),
MatDesc = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: false, defaultValueSql: "('')", comment: "Description"),
ApprovDate = table.Column<DateTime>(type: "datetime", nullable: false, defaultValueSql: "(getdate())"),
ApprovUser = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false, defaultValueSql: "('')"),
L_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
W_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
T_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Materials", x => x.MatID);
});
migrationBuilder.CreateIndex(
name: "Idx_Materials_MatExtCode_Unique",
table: "Materials",
column: "MatExtCode",
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Materials");
}
}
}
@@ -0,0 +1,132 @@
// <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 NKC.Data;
#nullable disable
namespace NKC.Data.Migrations
{
[DbContext(typeof(NKCContext))]
[Migration("20211118173720_AddRemnantsTable")]
partial class AddRemnantsTable
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Property<int>("MatID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
b.Property<DateTime>("ApprovDate")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
b.Property<string>("ApprovUser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)")
.HasDefaultValueSql("('')");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("L_mm");
b.Property<string>("MatDesc")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasDefaultValueSql("('')")
.HasComment("Description");
b.Property<int>("MatExtCode")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("T_mm");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("W_mm");
b.HasKey("MatID");
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
b.ToTable("Materials");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.Property<int>("RemnID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
b.Property<DateTime>("DtMod")
.HasColumnType("datetime2");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MatID")
.HasColumnType("int");
b.Property<string>("Note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("QtyAvail")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)");
b.HasKey("RemnID");
b.HasIndex("MatID");
b.ToTable("RemnantsList");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
.WithMany()
.HasForeignKey("MatID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MaterialNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,50 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace NKC.Data.Migrations
{
public partial class AddRemnantsTable : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "RemnantsList",
columns: table => new
{
RemnID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
MatID = table.Column<int>(type: "int", nullable: false),
Location = table.Column<string>(type: "nvarchar(max)", nullable: false),
QtyAvail = table.Column<int>(type: "int", nullable: false),
DtMod = table.Column<DateTime>(type: "datetime2", nullable: false),
LMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
WMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
TMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
Note = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RemnantsList", x => x.RemnID);
table.ForeignKey(
name: "FK_RemnantsList_Materials_MatID",
column: x => x.MatID,
principalTable: "Materials",
principalColumn: "MatID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_RemnantsList_MatID",
table: "RemnantsList",
column: "MatID");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "RemnantsList");
}
}
}
@@ -0,0 +1,172 @@
// <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 NKC.Data;
#nullable disable
namespace NKC.Data.Migrations
{
[DbContext(typeof(NKCContext))]
[Migration("20211119182450_AddMovMagTable")]
partial class AddMovMagTable
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Property<int>("MatID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
b.Property<DateTime>("ApprovDate")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
b.Property<string>("ApprovUser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)")
.HasDefaultValueSql("('')");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("L_mm");
b.Property<string>("MatDesc")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasDefaultValueSql("('')")
.HasComment("Description");
b.Property<int>("MatExtCode")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("T_mm");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("W_mm");
b.HasKey("MatID");
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
b.ToTable("Materials");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.Property<int>("MovID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
b.Property<DateTime>("DtRec")
.HasColumnType("datetime2");
b.Property<int>("QtyRec")
.HasColumnType("int");
b.Property<int>("RemnID")
.HasColumnType("int");
b.HasKey("MovID");
b.HasIndex("RemnID");
b.ToTable("MovMag");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.Property<int>("RemnID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
b.Property<DateTime>("DtMod")
.HasColumnType("datetime2");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MatID")
.HasColumnType("int");
b.Property<string>("Note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("QtyAvail")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)");
b.HasKey("RemnID");
b.HasIndex("MatID");
b.ToTable("RemnantsList");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
.WithMany()
.HasForeignKey("RemnID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RemnantNav");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
.WithMany("RemnantNav")
.HasForeignKey("MatID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MaterialNav");
});
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Navigation("RemnantNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,47 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace NKC.Data.Migrations
{
public partial class AddMovMagTable : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "MovMag",
columns: table => new
{
MovID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
DtRec = table.Column<DateTime>(type: "datetime2", nullable: false),
RemnID = table.Column<int>(type: "int", nullable: false),
QtyRec = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_MovMag", x => x.MovID);
table.ForeignKey(
name: "FK_MovMag_RemnantsList_RemnID",
column: x => x.RemnID,
principalTable: "RemnantsList",
principalColumn: "RemnID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_MovMag_RemnID",
table: "MovMag",
column: "RemnID");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "MovMag");
}
}
}
@@ -0,0 +1,176 @@
// <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 NKC.Data;
#nullable disable
namespace NKC.Data.Migrations
{
[DbContext(typeof(NKCContext))]
[Migration("20211120074650_MovMagAddUserId")]
partial class MovMagAddUserId
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Property<int>("MatID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
b.Property<DateTime>("ApprovDate")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
b.Property<string>("ApprovUser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)")
.HasDefaultValueSql("('')");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("L_mm");
b.Property<string>("MatDesc")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasDefaultValueSql("('')")
.HasComment("Description");
b.Property<int>("MatExtCode")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("T_mm");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("W_mm");
b.HasKey("MatID");
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
b.ToTable("Materials");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.Property<int>("MovID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
b.Property<DateTime>("DtRec")
.HasColumnType("datetime2");
b.Property<int>("QtyRec")
.HasColumnType("int");
b.Property<int>("RemnID")
.HasColumnType("int");
b.Property<string>("UserId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("MovID");
b.HasIndex("RemnID");
b.ToTable("MovMag");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.Property<int>("RemnID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
b.Property<DateTime>("DtMod")
.HasColumnType("datetime2");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MatID")
.HasColumnType("int");
b.Property<string>("Note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("QtyAvail")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)");
b.HasKey("RemnID");
b.HasIndex("MatID");
b.ToTable("RemnantsList");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
.WithMany()
.HasForeignKey("RemnID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RemnantNav");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
.WithMany("RemnantNav")
.HasForeignKey("MatID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MaterialNav");
});
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Navigation("RemnantNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace NKC.Data.Migrations
{
public partial class MovMagAddUserId : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "UserId",
table: "MovMag",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "UserId",
table: "MovMag");
}
}
}
@@ -0,0 +1,174 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NKC.Data;
#nullable disable
namespace NKC.Data.Migrations
{
[DbContext(typeof(NKCContext))]
partial class NKCContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Property<int>("MatID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
b.Property<DateTime>("ApprovDate")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
b.Property<string>("ApprovUser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)")
.HasDefaultValueSql("('')");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("L_mm");
b.Property<string>("MatDesc")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasDefaultValueSql("('')")
.HasComment("Description");
b.Property<int>("MatExtCode")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("T_mm");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)")
.HasColumnName("W_mm");
b.HasKey("MatID");
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
b.ToTable("Materials");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.Property<int>("MovID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
b.Property<DateTime>("DtRec")
.HasColumnType("datetime2");
b.Property<int>("QtyRec")
.HasColumnType("int");
b.Property<int>("RemnID")
.HasColumnType("int");
b.Property<string>("UserId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("MovID");
b.HasIndex("RemnID");
b.ToTable("MovMag");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.Property<int>("RemnID")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
b.Property<DateTime>("DtMod")
.HasColumnType("datetime2");
b.Property<decimal>("LMm")
.HasColumnType("decimal(18,3)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MatID")
.HasColumnType("int");
b.Property<string>("Note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("QtyAvail")
.HasColumnType("int");
b.Property<decimal>("TMm")
.HasColumnType("decimal(18,3)");
b.Property<decimal>("WMm")
.HasColumnType("decimal(18,3)");
b.HasKey("RemnID");
b.HasIndex("MatID");
b.ToTable("RemnantsList");
});
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
{
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
.WithMany()
.HasForeignKey("RemnID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RemnantNav");
});
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
{
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
.WithMany("RemnantNav")
.HasForeignKey("MatID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MaterialNav");
});
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
{
b.Navigation("RemnantNav");
});
#pragma warning restore 612, 618
}
}
}
+24
View File
@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NLog" Version="4.7.12" />
</ItemGroup>
</Project>
+164
View File
@@ -0,0 +1,164 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NKC.Data.DbModels;
using NLog;
namespace NKC.Data
{
public partial class NKCContext : DbContext
{
#region Private Fields
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private IConfiguration _configuration = null!;
#endregion Private Fields
#region Public Constructors
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
public NKCContext()
{
}
public NKCContext(IConfiguration configuration)
{
_configuration = configuration;
}
public NKCContext(DbContextOptions<NKCContext> options) : base(options)
{
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{
Log.Error(exc, "Exception during context initialization 02");
}
}
#endregion Public Constructors
#region Public Properties
public virtual DbSet<MaterialModel> DbSetMaterials { get; set; } = null!;
public virtual DbSet<RemnantsModel> DbSetRemnants { get; set; } = null!;
public virtual DbSet<MovMagModel> DbSetMovMag { get; set; } = null!;
public virtual DbSet<PrintJobQueue> DbSetPrintJobQueues { get; set; } = null!;
#endregion Public Properties
#region Private Methods
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
#endregion Private Methods
#region Protected Methods
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
string connString = _configuration.GetConnectionString("NKC.DB");
if (!string.IsNullOrEmpty(connString))
{
optionsBuilder.UseSqlServer(connString);
}
else
{
optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=Sauder_NKC;Trusted_Connection=True;");
}
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MaterialModel>(entity =>
{
entity.HasIndex(e => e.MatExtCode, "Idx_Materials_MatExtCode_Unique")
.IsUnique();
entity.Property(e => e.ApprovDate)
.HasColumnType("datetime")
.HasDefaultValueSql("(getdate())");
entity.Property(e => e.ApprovUser)
.HasMaxLength(50)
.HasDefaultValueSql("('')");
entity.Property(e => e.LMm)
.HasColumnType("decimal(18, 3)")
.HasColumnName("L_mm");
entity.Property(e => e.MatDesc)
.HasMaxLength(500)
.HasDefaultValueSql("('')")
.HasComment("Description");
entity.Property(e => e.TMm)
.HasColumnType("decimal(18, 3)")
.HasColumnName("T_mm");
entity.Property(e => e.WMm)
.HasColumnType("decimal(18, 3)")
.HasColumnName("W_mm");
});
modelBuilder.Entity<PrintJobQueue>(entity =>
{
entity.HasKey(e => e.IdxPrintJob);
entity.ToTable("PrintJobQueue");
entity.Property(e => e.DtEnd)
.HasColumnType("datetime")
.HasColumnName("dtEnd");
entity.Property(e => e.DtLastTry)
.HasColumnType("datetime")
.HasColumnName("dtLastTry");
entity.Property(e => e.DtStart)
.HasColumnType("datetime")
.HasColumnName("dtStart");
entity.Property(e => e.KeyParam).HasMaxLength(50);
entity.Property(e => e.PrtName)
.HasMaxLength(500)
.HasColumnName("prtName");
entity.Property(e => e.Stato).HasColumnName("stato");
entity.Property(e => e.TipoReport).HasMaxLength(250);
});
OnModelCreatingPartial(modelBuilder);
}
#endregion Protected Methods
#region Public Methods
public void DbForceMigrate()
{
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
Log.Info("DbForceMigrate: done!");
}
catch (Exception exc)
{
Log.Error(exc, "DbForceMigrate: Exception during context initialization 01");
}
}
#endregion Public Methods
}
}