public bool IsExpressionSupported() { if (SupportedDatabaseProviders == null || SupportedDatabaseProviders.Any() == false) { return(true); } return(SupportedDatabaseProviders.Any(x => x == CurrentDatabaseProvider)); }
public static void AddEFRepositories(this IServiceCollection services, bool selfHosted, string connectionString, SupportedDatabaseProviders provider) { if (string.IsNullOrWhiteSpace(connectionString)) { throw new Exception($"Database provider type {provider} was selected but no connection string was found."); } LinqToDBForEFTools.Initialize(); services.AddAutoMapper(typeof(UserRepository)); services.AddDbContext <DatabaseContext>(options => { if (provider == SupportedDatabaseProviders.Postgres) { options.UseNpgsql(connectionString); // Handle NpgSql Legacy Support for `timestamp without timezone` issue AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); } else if (provider == SupportedDatabaseProviders.MySql) { options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); } }); services.AddSingleton <ICipherRepository, CipherRepository>(); services.AddSingleton <ICollectionCipherRepository, CollectionCipherRepository>(); services.AddSingleton <ICollectionRepository, CollectionRepository>(); services.AddSingleton <IDeviceRepository, DeviceRepository>(); services.AddSingleton <IEmergencyAccessRepository, EmergencyAccessRepository>(); services.AddSingleton <IFolderRepository, FolderRepository>(); services.AddSingleton <IGrantRepository, GrantRepository>(); services.AddSingleton <IGroupRepository, GroupRepository>(); services.AddSingleton <IInstallationRepository, InstallationRepository>(); services.AddSingleton <IMaintenanceRepository, MaintenanceRepository>(); services.AddSingleton <IOrganizationRepository, OrganizationRepository>(); services.AddSingleton <IOrganizationApiKeyRepository, OrganizationApiKeyRepository>(); services.AddSingleton <IOrganizationConnectionRepository, OrganizationConnectionRepository>(); services.AddSingleton <IOrganizationSponsorshipRepository, OrganizationSponsorshipRepository>(); services.AddSingleton <IOrganizationUserRepository, OrganizationUserRepository>(); services.AddSingleton <IPolicyRepository, PolicyRepository>(); services.AddSingleton <ISendRepository, SendRepository>(); services.AddSingleton <ISsoConfigRepository, SsoConfigRepository>(); services.AddSingleton <ISsoUserRepository, SsoUserRepository>(); services.AddSingleton <ITaxRateRepository, TaxRateRepository>(); services.AddSingleton <ITransactionRepository, TransactionRepository>(); services.AddSingleton <IUserRepository, UserRepository>(); services.AddSingleton <IProviderRepository, ProviderRepository>(); services.AddSingleton <IProviderUserRepository, ProviderUserRepository>(); services.AddSingleton <IProviderOrganizationRepository, ProviderOrganizationRepository>(); if (selfHosted) { services.AddSingleton <IEventRepository, EventRepository>(); } }