using ASC.Common; using ASC.Core.Common.EF.Model; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; namespace ASC.Core.Common.EF.Context { public class MySqlVoipDbContext : VoipDbContext { } public class PostgreSqlVoipDbContext : VoipDbContext { } public class VoipDbContext : BaseDbContext { public DbSet VoipNumbers { get; set; } public DbSet VoipCalls { get; set; } public DbSet CrmContact { get; set; } protected override Dictionary> ProviderContext { get { return new Dictionary>() { { Provider.MySql, () => new MySqlVoipDbContext() } , { Provider.Postrge, () => new PostgreSqlVoipDbContext() } , }; } } protected override void OnModelCreating(ModelBuilder modelBuilder) { ModelBuilderWrapper .From(modelBuilder, Provider) .AddVoipNumber() .AddDbVoipCall() .AddCrmContact(); } } public static class VoipDbExtension { public static DIHelper AddVoipDbContextService(this DIHelper services) { return services.AddDbContextManagerService(); } } }