using DAL._Shared.SharedModels; using DAL.Models.Entities; using HRD.WebApi.DAL; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; using System.Collections; using System.Collections.Generic; using System.Linq; namespace DAL { public partial class WebApiContext : WebApiBaseContext { public WebApiContext(DbContextOptions options) : base(options) { } public virtual DbSet WebAppUserSet { get; set; } public virtual DbSet WebAppEmployeeInfo { get; set; } public virtual DbSet AdWebAppToWebAppRoleSet { get; set; } public virtual DbSet CostCentreSet { get; set; } public virtual DbSet DepartmentSet { get; set; } public virtual DbSet DocumentArtSet { get; set; } public virtual DbSet EmployeeAttributeSet { get; set; } public virtual DbSet EmployeeStatusSet { get; set; } public virtual DbSet ProjectSet { get; set; } public virtual DbSet RangSet { get; set; } public virtual DbSet WebAppSet { get; set; } public virtual DbSet WebAppRoleSet { get; set; } public virtual DbSet DepartmentToWebAppToEmployeeForWindreamSet { get; set; } public virtual DbSet DocumentArtToDepartmentSet { get; set; } public virtual DbSet EmployeeSet { get; set; } public virtual DbSet EmployeeToAttributeSet { get; set; } public virtual DbSet EmployeeToDepartmentSet { get; set; } public virtual DbSet EmployeeToWebAppSet { get; set; } public virtual DbSet WebAppAdditionalRoleSet { get; set; } public virtual DbSet WebAppToDepartmentSet { get; set; } public virtual DbSet WebAppToWebAppAdditionalRoleSet { get; set; } public virtual DbSet WebAppToWebAppRoleSet { get; set; } public virtual DbSet WindreamColumnsToDepartmentSet { get; set; } public virtual DbSet WindreamIndexSet { get; set; } public virtual DbSet WindreamIndexToWindreamSearchToDepartmentSet { get; set; } public virtual DbSet WindreamSearchSet { get; set; } public virtual DbSet WindreamSearchItemSet { get; set; } public virtual DbSet WindreamSearchItemToWindreamSearchToDepartmentSet { get; set; } public virtual DbSet WindreamSearchToDepartmentSet { get; set; } public virtual DbSet WindreamInputFolderSet { get; set; } public virtual DbSet SubsidiarySet { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.ToTable("TBSTF_SUBSIDIARY", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_INPUT_FOLDER", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_SEARCH_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_SEARCH_ITEM_TO_WINDREAM_SEARCH_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_SEARCH_ITEM", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_SEARCH", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_INDEX_TO_WINDREAM_SEARCH_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_INDEX", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WINDREAM_COLUMNS_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_TO_WEB_APP_ROLE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_TO_WEB_APP_ADDITIONAL_ROLE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_ADDITIONAL_ROLE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE_TO_WEB_APP", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE_TO_ATTRIBUTE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_DOCUMENT_ART_TO_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_DEPARTMENT_TO_WEB_APP_TO_EMPLOYEE_FOR_WINDREAM", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_ROLE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_RANG", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_PROJECT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE_STATUS", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_EMPLOYEE_ATTRIBUTE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_DOCUMENT_ART", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_DEPARTMENT", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_COST_CENTRE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_AD_WEB_APP_TO_WEB_APP_ROLE", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_USER", "dbo"); }); modelBuilder.Entity(entity => { entity.ToTable("TBSTF_WEB_APP_EMPLOYEE_INFO", "dbo"); }); Configure4DDNaming(modelBuilder.Model.GetEntityTypes().ToArray()); base.OnModelCreating(modelBuilder); } public static void Configure4DDNaming(params IMutableEntityType[] entityTypes) { foreach (var entityType in entityTypes) { // Configure column names foreach (var property in entityType.GetProperties()) { var columnName = ToSnakeCase(property.Name); property.SetColumnName(columnName); } } } private static string ToSnakeCase(string input) { if (string.IsNullOrEmpty(input)) { return input; } var startUnderscores = System.Text.RegularExpressions.Regex.Match(input, @"^_+"); return startUnderscores + System.Text.RegularExpressions.Regex.Replace(input, @"([a-z0-9])([A-Z])", "$1_$2").ToUpper(); } } }