using MagMan.Data.Admin.DbModels; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MagMan.Data.Admin { public partial class MultiTenantContext : DbContext { #region Private Fields private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields #region Public Constructors public MultiTenantContext() { } public MultiTenantContext(DbContextOptions options) : base(options) { } #endregion Public Constructors #region Public Properties public virtual DbSet DbSetCustomers { get; set; } = null!; public virtual DbSet DbSetMachines { get; set; } = null!; public virtual DbSet DbSetAuthKey { get; set; } = null!; #endregion Public Properties #region Protected Methods protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { // default string connString = DbConfig.CONNECTION_STRING; if (!optionsBuilder.IsConfigured) { // commentato x test su cluster in ufficio #if DEBUG //connString = "Server=localhost;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; //connString = "Server=mdb03.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; connString = "Server=mdb.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; #endif var serverVersion = DbConfig.MysqlServerVersion(connString); optionsBuilder.UseMySql(connString, serverVersion); } } protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys())) { relationship.DeleteBehavior = DeleteBehavior.Restrict; } OnModelCreatingPartial(modelBuilder); } #endregion Protected Methods #region Public Methods public void DbForceMigrate() { try { // se non ci fosse... crea o migra! Database.Migrate(); Log.Info("MultiTenantContext DbForceMigrate: done!"); } catch (Exception exc) { Log.Error(exc, "MultiTenantContext DbForceMigrate: Exception during context initialization 01"); } } #endregion Public Methods #region Private Methods // // This is here so CodeMaid doesn't reorganize this document // partial void OnModelCreatingPartial(ModelBuilder modelBuilder); #endregion Private Methods } }