using Microsoft.EntityFrameworkCore; using UnivateProperties_API.Model.Communication; using UnivateProperties_API.Model.Users; using UnivateProperties_API.Model.Properties; using UnivateProperties_API.Model.Region; using UnivateProperties_API.Model.Timeshare; using System.Linq; using UnivateProperties_API.Model; using UnivateProperties_API.Model.Banks; using UnivateProperties_API.Model.Misc; using UnivateProperties_API.Model.ProcessFlow; using UnivateProperties_API.Model.Logging; namespace UnivateProperties_API.Context { public class DataContext : DbContext { public DataContext(DbContextOptions options) : base(options) { } #region User public virtual DbSet Agencies { get; set; } public virtual DbSet Agents { get; set; } public virtual DbSet Users { get; set; } public virtual DbSet Individuals { get; set; } public virtual DbSet
Addresses { get; set; } #endregion User #region Communication public virtual DbSet Emails { get; set; } public virtual DbSet Accounts { get; set; } public virtual DbSet Hosts { get; set; } #endregion Communication #region Property public DbSet Properties { get; set; } public DbSet PropertyImages { get; set; } public DbSet PropertyTypes { get; set; } public DbSet PropertyUserFields { get; set; } public DbSet UserDefinedFields { get; set; } public DbSet UserDefinedGroups { get; set; } #endregion #region Region public DbSet Provinces { get; set; } public DbSet Cities { get; set; } public DbSet Suburbs { get; set; } #endregion #region Timeshare public DbSet Weeks { get; set; } public DbSet Status { get; set; } public DbSet UnitConfigurations { get; set; } public DbSet UnitConfigurationTypes { get; set; } public DbSet Seasons { get; set; } public DbSet Banks { get; set; } public DbSet BankAccounts { get; set; } #endregion Timeshare #region ProcessFlow public DbSet ProcessFlows { get; set; } public DbSet BidItems { get; set; } #endregion #region Logs public DbSet SearchLogs { get; set; } #endregion public override int SaveChanges() { foreach(var item in ChangeTracker .Entries() .Where(x => x.State == EntityState.Modified || x.State == EntityState.Added) .Select(x => x.Entity) .ToList()) { if(item is BaseEntity) { (item as BaseEntity).UpdateModified(string.Empty); } } return base.SaveChanges(); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().ToTable("Hosts"); modelBuilder.Entity() .HasIndex(u => u.Code) .IsUnique(); } } }