diff --git a/GWMS.Data/Controllers/GWMSController.cs b/GWMS.Data/Controllers/GWMSController.cs index 1651022..b89a299 100644 --- a/GWMS.Data/Controllers/GWMSController.cs +++ b/GWMS.Data/Controllers/GWMSController.cs @@ -225,6 +225,26 @@ namespace GWMS.Data.Controllers return dbResult; } + /// + /// Restituisce ultimi eventi rebootlog + /// + /// num eventi, se 0 = tutti + /// + public List GetRebootLog(int maxNum = 100) + { + if (maxNum == 0) + { + maxNum = dbCtx.DbRebootLog.Count(); + } + var dbResult = dbCtx + .DbRebootLog + .OrderByDescending(x => x.DtEvent) + .Take(maxNum) + .ToList(); + + return dbResult; + } + public List GetSuppliers() { var dbResult = dbCtx @@ -436,6 +456,22 @@ namespace GWMS.Data.Controllers return fatto; } + public bool RecordRebootLog(RebootLogModel newItem) + { + bool done = false; + try + { + dbCtx + .DbRebootLog + .Add(newItem); + dbCtx.SaveChanges(); + done = true; + } + catch (Exception exc) + { } + return done; + } + /// /// Rigenera intero DB se riceve ID di un plant SIM... /// diff --git a/GWMS.Data/DatabaseModels/RebootLogModel.cs b/GWMS.Data/DatabaseModels/RebootLogModel.cs new file mode 100644 index 0000000..d7b0eab --- /dev/null +++ b/GWMS.Data/DatabaseModels/RebootLogModel.cs @@ -0,0 +1,40 @@ +using System; +using System.Linq; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +// +// This is here so CodeMaid doesn't reorganize this document +// + +namespace GWMS.Data.DatabaseModels +{ + /// + /// Tabella dati Plant (log storico) + /// + [Table("RebootLog")] + public class RebootLogModel + { + #region Public Properties + + [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int RecordId { get; set; } + + public DateTime DtEvent { get; set; } = DateTime.Now; + + /// + /// Oggetto di cui si registra il reboot log + /// + [MaxLength(250)] + public string Item { get; set; } = "ND"; + + /// + /// Payload associato (IP/Mac address) + /// + [MaxLength(250)] + public string Payload { get; set; } = ""; + + #endregion Public Properties + } +} \ No newline at end of file diff --git a/GWMS.Data/DbConfig.cs b/GWMS.Data/DbConfig.cs index 08a93b9..b2fbc6a 100644 --- a/GWMS.Data/DbConfig.cs +++ b/GWMS.Data/DbConfig.cs @@ -49,13 +49,17 @@ namespace GWMS.Data public static async Task ExecMigrationIdentity() { // esecuzione migrazione - return await DbAdmin.migrateDbIdentity(); + var migrateTask = Task.Run(async () => await DbAdmin.migrateDbIdentity()); + migrateTask.Wait(); + return migrateTask.Result; } - public static async Task ExecMigrationMain() + public static bool ExecMigrationMain() { // esecuzione migrazione - return await DbAdmin.migrateDbMain(); + var migrateTask = Task.Run(async () => await DbAdmin.migrateDbMain()); + migrateTask.Wait(); + return migrateTask.Result; } public static void InitDb(string server, string nKey, string sKey) diff --git a/GWMS.Data/GWMSContext.cs b/GWMS.Data/GWMSContext.cs index 362207c..3909cc6 100644 --- a/GWMS.Data/GWMSContext.cs +++ b/GWMS.Data/GWMSContext.cs @@ -42,6 +42,7 @@ namespace GWMS.Data #region Public Properties + public virtual DbSet DbRebootLog { get; set; } public virtual DbSet DbSetConfig { get; set; } public virtual DbSet DbSetItems { get; set; } diff --git a/GWMS.Data/Migrations/20210802085127_RebootLog.Designer.cs b/GWMS.Data/Migrations/20210802085127_RebootLog.Designer.cs new file mode 100644 index 0000000..783ba92 --- /dev/null +++ b/GWMS.Data/Migrations/20210802085127_RebootLog.Designer.cs @@ -0,0 +1,910 @@ +// +using System; +using GWMS.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace GWMS.Data.Migrations +{ + [DbContext(typeof(GWMSContext))] + [Migration("20210802085127_RebootLog")] + partial class RebootLog + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Relational:MaxIdentifierLength", 64) + .HasAnnotation("ProductVersion", "5.0.7"); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.AnKeyValModel", b => + { + b.Property("KeyName") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("Descript") + .HasMaxLength(250) + .HasColumnType("varchar(250)") + .HasComment("Descrizione dell'item"); + + b.Property("ValFloat") + .HasColumnType("int"); + + b.Property("ValInt") + .HasColumnType("int"); + + b.Property("ValString") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("KeyName"); + + b.ToTable("AnKeyVal"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.ConfigModel", b => + { + b.Property("KeyName") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("Note") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("Val") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ValStd") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("Valore di default/riferimento per la variabile"); + + b.HasKey("KeyName"); + + b.ToTable("Config"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.ItemModel", b => + { + b.Property("ItemId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ItemCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("ItemDesc") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("ItemType") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("UM") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("ItemId"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.ListValModel", b => + { + b.Property("TabName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("TabName"); + + b.Property("FieldName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("FieldName"); + + b.Property("Val") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("Val"); + + b.Property("Descript") + .HasMaxLength(250) + .HasColumnType("varchar(250)") + .HasColumnName("Descript"); + + b.Property("Ordinal") + .HasColumnType("int") + .HasColumnName("Ordinal"); + + b.HasKey("TabName", "FieldName", "Val"); + + b.ToTable("ListVal"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.OrderModel", b => + { + b.Property("OrderId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DtETA") + .HasColumnType("datetime(6)"); + + b.Property("DtExecEnd") + .HasColumnType("datetime(6)"); + + b.Property("DtExecStart") + .HasColumnType("datetime(6)"); + + b.Property("DtOrder") + .HasColumnType("datetime(6)"); + + b.Property("ExecutionQty") + .HasColumnType("double"); + + b.Property("OrderCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("OrderDesc") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("OrderQty") + .HasColumnType("double"); + + b.Property("PlantId") + .HasColumnType("int"); + + b.Property("SupplierId") + .HasColumnType("int"); + + b.Property("TransporterId") + .HasColumnType("int"); + + b.HasKey("OrderId"); + + b.HasIndex("PlantId"); + + b.HasIndex("SupplierId"); + + b.HasIndex("TransporterId"); + + b.ToTable("Order"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.PlantDetailModel", b => + { + b.Property("PlantId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("LevelAct") + .HasColumnType("double"); + + b.Property("LevelMax") + .HasColumnType("double"); + + b.Property("PlantCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("PlantDesc") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("PressAct") + .HasColumnType("double"); + + b.Property("PressBHAct") + .HasColumnType("double"); + + b.Property("PressBHMax") + .HasColumnType("double"); + + b.Property("PressBLAct") + .HasColumnType("double"); + + b.Property("PressBLMax") + .HasColumnType("double"); + + b.Property("PressMax") + .HasColumnType("double"); + + b.HasKey("PlantId"); + + b.ToTable("PlantDetail"); + + b.HasData( + new + { + PlantId = 1, + LevelAct = 0.0, + LevelMax = 28000.0, + PlantCode = "PIZ03", + PlantDesc = "Collecchio", + PressAct = 0.0, + PressBHAct = 0.0, + PressBHMax = 270.0, + PressBLAct = 0.0, + PressBLMax = 270.0, + PressMax = 19.0 + }, + new + { + PlantId = 2, + LevelAct = 0.0, + LevelMax = 28000.0, + PlantCode = "PIZ04", + PlantDesc = "Noceto", + PressAct = 0.0, + PressBHAct = 0.0, + PressBHMax = 270.0, + PressBLAct = 0.0, + PressBLMax = 270.0, + PressMax = 19.0 + }, + new + { + PlantId = 3, + LevelAct = 0.0, + LevelMax = 24000.0, + PlantCode = "PIZ05", + PlantDesc = "Baganzola", + PressAct = 0.0, + PressBHAct = 0.0, + PressBHMax = 270.0, + PressBLAct = 0.0, + PressBLMax = 270.0, + PressMax = 19.0 + }, + new + { + PlantId = 4, + LevelAct = 0.0, + LevelMax = 24000.0, + PlantCode = "PIZ08", + PlantDesc = "Pilastrello", + PressAct = 0.0, + PressBHAct = 0.0, + PressBHMax = 270.0, + PressBLAct = 0.0, + PressBLMax = 270.0, + PressMax = 19.0 + }); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.PlantLogModel", b => + { + b.Property("PlantDataId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DtEvent") + .HasColumnType("datetime(6)"); + + b.Property("FluxType") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("PlantId") + .HasColumnType("int"); + + b.Property("ValNumber") + .HasColumnType("double"); + + b.Property("ValString") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("PlantDataId"); + + b.HasIndex("PlantId"); + + b.ToTable("PlantLog"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.PlantStatusModel", b => + { + b.Property("PlantId") + .HasColumnType("int"); + + b.Property("FluxType") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("DtEvent") + .HasColumnType("datetime(6)"); + + b.Property("ValNumber") + .HasColumnType("double"); + + b.Property("ValString") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("PlantId", "FluxType"); + + b.ToTable("PlantStatus"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.RebootLogModel", b => + { + b.Property("RecordId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DtEvent") + .HasColumnType("datetime(6)"); + + b.Property("Item") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("Payload") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("RecordId"); + + b.ToTable("RebootLog"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.SupplierModel", b => + { + b.Property("SupplierId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("SupplierCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("SupplierDesc") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("SupplierId"); + + b.ToTable("Supplier"); + + b.HasData( + new + { + SupplierId = 1, + SupplierCode = "LIQUIGAS", + SupplierDesc = "Liquigas" + }, + new + { + SupplierId = 2, + SupplierCode = "VULKANGAS", + SupplierDesc = "Vulkangas" + }); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.TransporterModel", b => + { + b.Property("TransporterId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("PositionLatitude") + .HasColumnType("double"); + + b.Property("PositionLongitude") + .HasColumnType("double"); + + b.Property("PositionUpdated") + .HasColumnType("datetime(6)"); + + b.Property("TransporterCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("TransporterDesc") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("TransporterId"); + + b.ToTable("Transporter"); + + b.HasData( + new + { + TransporterId = 1, + PositionLatitude = 0.0, + PositionLongitude = 0.0, + PositionUpdated = new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3264), + TransporterCode = "LEVO", + TransporterDesc = "Levorato" + }, + new + { + TransporterId = 2, + PositionLatitude = 0.0, + PositionLongitude = 0.0, + PositionUpdated = new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3842), + TransporterCode = "TRAF", + TransporterDesc = "Traffik" + }); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.UserModel", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("AuthKey") + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Email") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("Firstname") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("Lang") + .HasMaxLength(10) + .HasColumnType("varchar(10)"); + + b.Property("Lastname") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("Livello") + .HasColumnType("int"); + + b.Property("MaskPlantId") + .HasColumnType("int"); + + b.Property("MaskSupplierId") + .HasColumnType("int"); + + b.Property("MaskTranspId") + .HasColumnType("int"); + + b.Property("SaltPasswd") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("UserName") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("UserId"); + + b.ToTable("Users"); + + b.HasData( + new + { + UserId = 1, + AuthKey = "th1sIsTh3R1vrOfThNgt98", + Email = "samuele@steamware.net", + Firstname = "Samuele", + IsActive = true, + Lang = "IT", + Lastname = "Locatelli", + Livello = 1, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "samuele.locatelli" + }, + new + { + UserId = 2, + AuthKey = "th1sIsTh3R1vrOfThNgt91", + Email = "giancarlo@steamware.net", + Firstname = "Giancarlo", + IsActive = true, + Lang = "IT", + Lastname = "Rottoli", + Livello = 1, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "giancarlo.rottoli" + }, + new + { + UserId = 3, + AuthKey = "th1sIsTh3R1vrOfThNgt93", + Email = "info@steamware.net", + Firstname = "Steamware", + IsActive = true, + Lang = "IT", + Lastname = "Admin", + Livello = 1, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "steamw.admin" + }, + new + { + UserId = 4, + AuthKey = "th1sIsTh3R1vrOfThNgt97", + Email = "a.pizzaferri@pizzaferripetroli.it", + Firstname = "Angelo", + IsActive = true, + Lang = "IT", + Lastname = "Pizzaferri", + Livello = 2, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "angelo.pizzaferri" + }, + new + { + UserId = 5, + AuthKey = "th1sIsTh3R1vrOfThNgt99", + Email = "andrei.valeanu@winnlab.it", + Firstname = "Andrei", + IsActive = true, + Lang = "IT", + Lastname = "Valeanu", + Livello = 2, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "andrei.valeanu" + }, + new + { + UserId = 6, + AuthKey = "th1sIsTh3R1vrOfThNgt92", + Email = "info@steamware.net", + Firstname = "User", + IsActive = true, + Lang = "IT", + Lastname = "LIQUIGAS", + Livello = 4, + MaskPlantId = 0, + MaskSupplierId = 1, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "liquigas.user01" + }, + new + { + UserId = 7, + AuthKey = "th1sIsTh3R1vrOfThNgt94", + Email = "info@steamware.net", + Firstname = "User", + IsActive = true, + Lang = "IT", + Lastname = "VULKANGAS", + Livello = 4, + MaskPlantId = 0, + MaskSupplierId = 2, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "vulkangas.user01" + }, + new + { + UserId = 8, + AuthKey = "th1sIsTh3R1vrOfThNgt95", + Email = "info@steamware.net", + Firstname = "User", + IsActive = true, + Lang = "IT", + Lastname = "LEVORATO", + Livello = 4, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 1, + SaltPasswd = "", + UserName = "levorato.user01" + }, + new + { + UserId = 9, + AuthKey = "th1sIsTh3R1vrOfThNgt96", + Email = "info@steamware.net", + Firstname = "User", + IsActive = true, + Lang = "IT", + Lastname = "TRAFFIK", + Livello = 4, + MaskPlantId = 0, + MaskSupplierId = 0, + MaskTranspId = 2, + SaltPasswd = "", + UserName = "traffik.user01" + }, + new + { + UserId = 10, + AuthKey = "th1sIsTh3R1vrOfThNgt96", + Email = "info@steamware.net", + Firstname = "Stazione", + IsActive = true, + Lang = "IT", + Lastname = "Collecchio", + Livello = 3, + MaskPlantId = 1, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "piz03.user01" + }, + new + { + UserId = 11, + AuthKey = "th1sIsTh3R1vrOfThNgt96", + Email = "info@steamware.net", + Firstname = "Stazione", + IsActive = true, + Lang = "IT", + Lastname = "Noceto", + Livello = 3, + MaskPlantId = 2, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "piz04.user01" + }, + new + { + UserId = 12, + AuthKey = "th1sIsTh3R1vrOfThNgt96", + Email = "info@steamware.net", + Firstname = "Stazione", + IsActive = true, + Lang = "IT", + Lastname = "Baganzola", + Livello = 3, + MaskPlantId = 3, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "piz05.user01" + }, + new + { + UserId = 13, + AuthKey = "th1sIsTh3R1vrOfThNgt96", + Email = "info@steamware.net", + Firstname = "Stazione", + IsActive = true, + Lang = "IT", + Lastname = "Pilastrello", + Livello = 3, + MaskPlantId = 4, + MaskSupplierId = 0, + MaskTranspId = 0, + SaltPasswd = "", + UserName = "piz08.user01" + }); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.WeekPlanModel", b => + { + b.Property("WeekPlanId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DayNum") + .HasColumnType("int"); + + b.Property("DeliveryHour") + .HasColumnType("int"); + + b.Property("Note") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("PlantId") + .HasColumnType("int"); + + b.Property("SupplierId") + .HasColumnType("int"); + + b.Property("TransporterId") + .HasColumnType("int"); + + b.HasKey("WeekPlanId"); + + b.HasIndex("PlantId"); + + b.HasIndex("SupplierId"); + + b.HasIndex("TransporterId"); + + b.ToTable("WeekPlan"); + + b.HasData( + new + { + WeekPlanId = 1, + DayNum = 1, + DeliveryHour = 20, + Note = "18K", + PlantId = 2, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 2, + DayNum = 2, + DeliveryHour = 20, + Note = "18K", + PlantId = 2, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 3, + DayNum = 3, + DeliveryHour = 20, + Note = "18K", + PlantId = 2, + SupplierId = 1, + TransporterId = 2 + }, + new + { + WeekPlanId = 4, + DayNum = 4, + DeliveryHour = 15, + Note = "9K", + PlantId = 2, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 5, + DayNum = 4, + DeliveryHour = 20, + Note = "18K", + PlantId = 2, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 6, + DayNum = 6, + DeliveryHour = 20, + Note = "18K", + PlantId = 2, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 7, + DayNum = 2, + DeliveryHour = 14, + Note = "3K", + PlantId = 3, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 8, + DayNum = 2, + DeliveryHour = 15, + Note = "15K", + PlantId = 4, + SupplierId = 1, + TransporterId = 1 + }, + new + { + WeekPlanId = 9, + DayNum = 2, + DeliveryHour = 17, + Note = "18K", + PlantId = 1, + SupplierId = 2, + TransporterId = 2 + }); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.OrderModel", b => + { + b.HasOne("GWMS.Data.DatabaseModels.PlantDetailModel", "Plant") + .WithMany() + .HasForeignKey("PlantId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("GWMS.Data.DatabaseModels.SupplierModel", "Supplier") + .WithMany() + .HasForeignKey("SupplierId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("GWMS.Data.DatabaseModels.TransporterModel", "Transporter") + .WithMany() + .HasForeignKey("TransporterId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("Plant"); + + b.Navigation("Supplier"); + + b.Navigation("Transporter"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.PlantLogModel", b => + { + b.HasOne("GWMS.Data.DatabaseModels.PlantDetailModel", "Plant") + .WithMany() + .HasForeignKey("PlantId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("Plant"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.PlantStatusModel", b => + { + b.HasOne("GWMS.Data.DatabaseModels.PlantDetailModel", "Plant") + .WithMany() + .HasForeignKey("PlantId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("Plant"); + }); + + modelBuilder.Entity("GWMS.Data.DatabaseModels.WeekPlanModel", b => + { + b.HasOne("GWMS.Data.DatabaseModels.PlantDetailModel", "Plant") + .WithMany() + .HasForeignKey("PlantId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("GWMS.Data.DatabaseModels.SupplierModel", "Supplier") + .WithMany() + .HasForeignKey("SupplierId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("GWMS.Data.DatabaseModels.TransporterModel", "Transporter") + .WithMany() + .HasForeignKey("TransporterId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("Plant"); + + b.Navigation("Supplier"); + + b.Navigation("Transporter"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/GWMS.Data/Migrations/20210802085127_RebootLog.cs b/GWMS.Data/Migrations/20210802085127_RebootLog.cs new file mode 100644 index 0000000..ea94460 --- /dev/null +++ b/GWMS.Data/Migrations/20210802085127_RebootLog.cs @@ -0,0 +1,68 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace GWMS.Data.Migrations +{ + public partial class RebootLog : Migration + { + #region Protected Methods + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "RebootLog"); + + migrationBuilder.UpdateData( + table: "Transporter", + keyColumn: "TransporterId", + keyValue: 1, + column: "PositionUpdated", + value: new DateTime(2021, 6, 25, 16, 15, 35, 940, DateTimeKind.Local).AddTicks(7402)); + + migrationBuilder.UpdateData( + table: "Transporter", + keyColumn: "TransporterId", + keyValue: 2, + column: "PositionUpdated", + value: new DateTime(2021, 6, 25, 16, 15, 35, 940, DateTimeKind.Local).AddTicks(8022)); + } + + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "RebootLog", + columns: table => new + { + RecordId = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + DtEvent = table.Column(type: "datetime(6)", nullable: false), + Item = table.Column(type: "varchar(250)", maxLength: 250, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Payload = table.Column(type: "varchar(250)", maxLength: 250, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_RebootLog", x => x.RecordId); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Transporter", + keyColumn: "TransporterId", + keyValue: 1, + column: "PositionUpdated", + value: new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3264)); + + migrationBuilder.UpdateData( + table: "Transporter", + keyColumn: "TransporterId", + keyValue: 2, + column: "PositionUpdated", + value: new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3842)); + } + + #endregion Protected Methods + } +} \ No newline at end of file diff --git a/GWMS.Data/Migrations/GWMSContextModelSnapshot.cs b/GWMS.Data/Migrations/GWMSContextModelSnapshot.cs index 27f1ab2..b5e50dd 100644 --- a/GWMS.Data/Migrations/GWMSContextModelSnapshot.cs +++ b/GWMS.Data/Migrations/GWMSContextModelSnapshot.cs @@ -332,6 +332,28 @@ namespace GWMS.Data.Migrations b.ToTable("PlantStatus"); }); + modelBuilder.Entity("GWMS.Data.DatabaseModels.RebootLogModel", b => + { + b.Property("RecordId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DtEvent") + .HasColumnType("datetime(6)"); + + b.Property("Item") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("Payload") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.HasKey("RecordId"); + + b.ToTable("RebootLog"); + }); + modelBuilder.Entity("GWMS.Data.DatabaseModels.SupplierModel", b => { b.Property("SupplierId") @@ -398,7 +420,7 @@ namespace GWMS.Data.Migrations TransporterId = 1, PositionLatitude = 0.0, PositionLongitude = 0.0, - PositionUpdated = new DateTime(2021, 6, 25, 16, 15, 35, 940, DateTimeKind.Local).AddTicks(7402), + PositionUpdated = new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3264), TransporterCode = "LEVO", TransporterDesc = "Levorato" }, @@ -407,7 +429,7 @@ namespace GWMS.Data.Migrations TransporterId = 2, PositionLatitude = 0.0, PositionLongitude = 0.0, - PositionUpdated = new DateTime(2021, 6, 25, 16, 15, 35, 940, DateTimeKind.Local).AddTicks(8022), + PositionUpdated = new DateTime(2021, 8, 2, 10, 51, 27, 549, DateTimeKind.Local).AddTicks(3842), TransporterCode = "TRAF", TransporterDesc = "Traffik" }); diff --git a/GWMS.UI/Controllers/IOBController.cs b/GWMS.UI/Controllers/IOBController.cs index 4bf78e6..21c4328 100644 --- a/GWMS.UI/Controllers/IOBController.cs +++ b/GWMS.UI/Controllers/IOBController.cs @@ -1109,9 +1109,20 @@ namespace GWMS.UI.Controllers [HttpGet("sendReboot")] public string sendReboot(string idxMacchina, string mac) { - string answ = "OK"; - // deve registrare startup IOB-WIN e macchina - + string answ = ""; + try + { + // registrazione startup IOB-WIN e macchina + RebootLogModel newItem = new RebootLogModel() + { + DtEvent = DateTime.Now, + Item = idxMacchina, + Payload = mac + }; + _DataService.RebootLogInsert(newItem); + } + catch + { } return answ; } diff --git a/GWMS.UI/Data/GWMSDataService.cs b/GWMS.UI/Data/GWMSDataService.cs index 026c40b..799fbb8 100644 --- a/GWMS.UI/Data/GWMSDataService.cs +++ b/GWMS.UI/Data/GWMSDataService.cs @@ -130,6 +130,24 @@ namespace GWMS.UI.Data return await Task.FromResult(dbResult); } + public PlantLogModel convertFluxToPL(int plantId, flogData origData) + { + // cerco di ottenere un val in cifre + double valDbl = 0; + double.TryParse(origData.valore, out valDbl); + TimeSpan delta = origData.dtCurr.Subtract(origData.dtEve); + PlantLogModel answ = new PlantLogModel() + { + FluxType = origData.flux, + ValNumber = valDbl, + ValString = origData.valore, + PlantId = plantId, + DtEvent = DateTime.Now.Subtract(delta) + }; + + return answ; + } + public async Task HasPlantLog() { return await Task.FromResult(dbController.HasPlantLog()); @@ -218,18 +236,6 @@ namespace GWMS.UI.Data return dbController.PlantLogInsertNew(newItems); } - public async Task PlantsGetByCode(string PlantCode) - { - PlantDTO answ = new PlantDTO(); - var ListRecords = await PlantsGetAll(); - var found = ListRecords.Where(x => x.PlantCode == PlantCode).FirstOrDefault(); - if (found != null) - { - answ = found; - } - return await Task.FromResult(answ); - } - public async Task> PlantsGetAll() { List dbResult = new List(); @@ -256,6 +262,28 @@ namespace GWMS.UI.Data return await Task.FromResult(dbResult); } + public async Task PlantsGetByCode(string PlantCode) + { + PlantDTO answ = new PlantDTO(); + var ListRecords = await PlantsGetAll(); + var found = ListRecords.Where(x => x.PlantCode == PlantCode).FirstOrDefault(); + if (found != null) + { + answ = found; + } + return await Task.FromResult(answ); + } + + public void RebootLogInsert(RebootLogModel newItem) + { + try + { + dbController.RecordRebootLog(newItem); + } + catch + { } + } + public async Task RegenDB(int numDays, int stepMin = 30, int maxHourRate = 800) { return await Task.FromResult(dbController.RegenDB(1, numDays, stepMin, maxHourRate)); @@ -386,25 +414,6 @@ namespace GWMS.UI.Data } } - public PlantLogModel convertFluxToPL(int plantId, flogData origData) - { - // cerco di ottenere un val in cifre - double valDbl = 0; - double.TryParse(origData.valore, out valDbl); - TimeSpan delta = origData.dtCurr.Subtract(origData.dtEve); - PlantLogModel answ = new PlantLogModel() - { - FluxType = origData.flux, - ValNumber = valDbl, - ValString = origData.valore, - PlantId = plantId, - DtEvent = DateTime.Now.Subtract(delta) - - }; - - return answ; - } - #endregion Public Methods } } \ No newline at end of file diff --git a/GWMS.UI/Startup.cs b/GWMS.UI/Startup.cs index a1a3429..7ade4c7 100644 --- a/GWMS.UI/Startup.cs +++ b/GWMS.UI/Startup.cs @@ -99,7 +99,6 @@ namespace GWMS.UI ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }); endpoints.MapFallbackToPage("/_Host"); - }); } @@ -114,6 +113,9 @@ namespace GWMS.UI DbConfig.InitDb(dbServerAddr, nKey, sKey); // inizializzo il DB e creo (se necessario) l'utente DbConfig.CheckUser(nKey, sKey); + // verifico se serve applicazione migrazioni + DbConfig.ExecMigrationMain(); + DbConfig.ExecMigrationIdentity(); // altri parametri per check vari string connStringDB = DbConfig.CONNECTION_STRING; diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 880fa15..cbcde20 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo statistiche MAPO -

Versione: 1.0.2107.3018

+

Versione: 1.0.2108.0211


Note di rilascio:
    diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 39248f0..32eaa56 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -1.0.2107.3018 +1.0.2108.0211 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index afdb7ec..7c5c1ff 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.0.2107.3018 + 1.0.2108.0211 http://nexus.steamware.net/repository/SWS/MP-STATS/stable/0/GWMS.UI.zip http://nexus.steamware.net/repository/SWS/MP-STATS/stable/0/ChangeLog.html false