public static void ConfigureDbContext(
            DbContextOptionsBuilder optionsBuilder,
            IDatabaseOptions databaseOptions
            )
        {
            string connString = databaseOptions.CreateConnectionString();

            if (IsInMemory(connString))
            {
                // Create a static connection simply to keep the connection alive
                if (InMemoryConnection == null)
                {
                    InMemoryConnection = new SqliteConnection(connString);
                    InMemoryConnection.Open();
                }

                optionsBuilder.UseSqlite(connString);
            }
            else
            {
                // Create a connection ourselves because we run into timeouts when seeding
                // https://github.com/aspnet/EntityFrameworkCore/issues/18607

                var conn = new SqliteConnection(connString)
                {
                    DefaultTimeout = 180
                };

                optionsBuilder.UseSqlite(conn);
            }
        }
Beispiel #2
0
        public MongoCollectionIntegrator(IDatabaseOptions settings)
        {
            var client   = new MongoClient(settings.ConnectionString);
            var database = client.GetDatabase(settings.DatabaseName);

            _collection = database.GetCollection <T>(typeof(T).Name);
        }
Beispiel #3
0
 private void SetupScriptFolders(IDatabaseOptions database)
 {
     foreach (var source in _sources)
     {
         _logger.PostEntry("Setup script directory '{0}'.", source.SubFolder);
         _scriptFileManager.SetupScriptDirectory(database.Name, source.SubFolder);
     }
 }
 /// <summary>
 /// Constructs the Context with the Database Options values provided
 /// </summary>
 /// <param name="options">The connection string and name of the Database to use</param>
 public ContextProvider(IDatabaseOptions options)
 {
     // Create the (Singleton) Client, Database and then return the Context ready for use
     Context = MongoProvider
               .CreateMongoClient(options.ConnectionString)
               .GetDatabase(options.DatabaseName)
               .GetCollection <T>(Pluralizer.Pluralize(typeof(T).Name));
 }
Beispiel #5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="options">Options for this table</param>
 /// <param name="tableMetadata">The configuration for this table</param>
 /// <param name="parentColumnName">The name of the column that points out an id in the parent table.</param>
 /// <param name="parentTable">The parent table </param>
 public ManyToOneSql(IDatabaseOptions options, ISqlTableMetadata tableMetadata, string parentColumnName,
                     CrudSql <TOneModel> parentTable)
     : base(options, tableMetadata)
 {
     ParentColumnName = parentColumnName;
     ParentTable      = parentTable;
     _convenience     = new ManyToOneConvenience <TManyModel, TManyModel, Guid>(this);
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="options"></param>
        /// <param name="tableMetadata"></param>
        protected TableBase(IDatabaseOptions options, ISqlTableMetadata tableMetadata)
        {
            InternalContract.RequireNotNull(options, nameof(options));
            InternalContract.RequireValidated(tableMetadata, nameof(tableMetadata));

            Database      = new Database(options);
            TableMetadata = tableMetadata;
        }
        /// <summary>
        /// Add and use a Mongo database
        /// </summary>
        /// <param name="services">The services collection</param>
        /// <param name="databaseOptions">The database configuration options</param>
        /// <param name="healthCheckBuilder">An instance of the health check builder</param>
        /// <param name="healthCheckTag">The tag to register the MongoDb health check against</param>
        public static void AddMongoDataAccessLayer(this IServiceCollection services, IDatabaseOptions databaseOptions, IHealthChecksBuilder healthCheckBuilder = null, string healthCheckTag = null)
        {
            _ = databaseOptions ?? throw new ArgumentNullException(nameof(databaseOptions));

            services.AddScoped(typeof(IDatabaseIntegrator <>), typeof(MongoCollectionIntegrator <>));

            if (healthCheckBuilder != null)
            {
                healthCheckBuilder.AddMongoDb(databaseOptions.ConnectionString, databaseOptions.DatabaseName, null, new[] { healthCheckTag });
            }

            services.AddDataAccessLayer();
        }
Beispiel #8
0
        public ContextTests()
        {
            options = new DatabaseOptions
            {
                //! Testing provided via MongoDB running in Docker on localhost with no security
                //* docker run --name mongo-test --mount source=mongodb-test,target=/data/db -p 27017:27017 mongo
                ConnectionString = "mongodb://localhost",
                DatabaseName     = "CodeTest"
            };

            collection = new ContextProvider <TestModel>(options).Context;

            // Insert the one document we'll try to select in the test
            collection.InsertOne(new TestModel {
                Name = "Bilbo", Age = 99
            });
        }
Beispiel #9
0
 private void SetupScriptFolders(IDatabaseOptions database)
 {
     foreach (var source in _sources)
     {
         _logger.PostEntry("Setup script directory '{0}'.", source.SubFolder);
         _scriptFileManager.SetupScriptDirectory(database.Name, source.SubFolder);
     }
 }
 /// <summary>
 /// Add and use a Mongo database
 /// </summary>
 /// <param name="services">The services collection</param>
 /// <param name="databaseOptions">The database configuration options</param>
 public static void AddMongoDataAccessLayer(this IServiceCollection services, IDatabaseOptions databaseOptions) =>
 AddMongoDataAccessLayer(services, databaseOptions, null);
Beispiel #11
0
 /// <summary>
 /// Constructor
 /// </summary>
 public CrudSql(IDatabaseOptions options, ISqlTableMetadata tableMetadata)
     : base(options, tableMetadata)
 {
 }
Beispiel #12
0
 public ReturnDbContext(IDatabaseOptions databaseOptions)
 {
     this._databaseOptions = databaseOptions;
 }
 public IdentityContextFactory(IDatabaseOptions databaseOptions)
 {
     _databaseOptions = databaseOptions;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="options"></param>
 /// <param name="tableMetadata"></param>
 /// <param name="groupColumnName1"></param>
 /// <param name="referenceHandler1"></param>
 /// <param name="groupColumnName2"></param>
 /// <param name="referenceHandler2"></param>
 public ManyToManySql(IDatabaseOptions options, ISqlTableMetadata tableMetadata, string groupColumnName1,
                      CrudSql <TReferenceModel1> referenceHandler1, string groupColumnName2,
                      CrudSql <TReferenceModel2> referenceHandler2)
     : base(options, tableMetadata, groupColumnName1, referenceHandler1, groupColumnName2, referenceHandler2)
 {
 }
 public DependentToMasterSql(IDatabaseOptions options, ISqlTableMetadata tableMetadata,
                             CrudSql <TDependentModel> dependentTableHandler, CrudSql <TMasterModel> masterTableHandler)
     : base(options, tableMetadata, dependentTableHandler, masterTableHandler)
 {
 }
Beispiel #16
0
 public SqlDataAccess(IDatabaseOptions databaseOptions)
 {
     this.databaseOptions = databaseOptions as DatabaseOptions;
 }
Beispiel #17
0
 public PokerTimeDbContext(IDatabaseOptions databaseOptions)
 {
     this._databaseOptions = databaseOptions;
 }
 /// <summary>
 /// The constructor
 /// </summary>
 /// <param name="options">How to connect to the database.</param>
 public Database(IDatabaseOptions options) : this(options?.ConnectionString)
 {
     InternalContract.RequireNotNull(options, nameof(options));
     Options = options;
 }
Beispiel #19
0
 public MainDbContext(IDatabaseOptions databaseOptions)
 {
     _connection = new SQLiteAsyncConnection(databaseOptions.ConnectionString);
     ManualMigration();
 }
Beispiel #20
0
 public SalesDbContext(IDatabaseOptions databaseOptions, DbContextOptions <SalesDbContext> options)
     : base(options)
 {
     _databaseOptions = databaseOptions;
 }
Beispiel #21
0
 /// <inheritdoc />
 public DistributedLockTable(IDatabaseOptions options) : base(options, Metadata)
 {
 }