Example #1
0
        /// <summary>
        /// Create new instance.
        /// </summary>
        /// <param name="options">The <see cref="IdentityDapperOptions"/> instance.</param>
        public Npgsql(IdentityDapperOptions options, ICustomQueryRepository customQueryRepository = null, IQueryRepository queryRepository = null)
        {
            _options        = options;
            QueryRepository = queryRepository ?? new Internal.DefaultQueryRepository();

            // Set the default schema for PostgreSQL
            if (string.IsNullOrEmpty(_options.Schema))
            {
                _options.Schema = "public";
            }

            // Prepare queries for PostgreSQL driver.
            PrepareQueries();

            // Let caller change query properties
            if (customQueryRepository != null)
            {
                customQueryRepository.Configure(QueryRepository);
            }
        }
        /// <summary>
        /// Adds Npgsql as database driver.
        /// </summary>
        /// <param name="options">The <see cref="IdentityDapperOptions"/> instance this method extends.</param>
        /// <param name="connectionString">Database connection string.</param>
        /// <param name="schema">Database schema.</param>
        /// <param name="userTable">Databse user store table.</param>
        /// <param name="roleTable">Databse role store table.</param>
        /// <param name="customQueryRepository">Custom query repository configuration.</param>
        /// <returns>The <see cref="IdentityDapperOptions"/> instance this method extends.</returns>
        public static IdentityDapperOptions UseNpgsql(this IdentityDapperOptions options,
                                                      string connectionString,
                                                      string schema,
                                                      string userTable,
                                                      string roleTable,
                                                      ICustomQueryRepository customQueryRepository)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.ConnectionString = connectionString;
            options.Schema           = schema ?? options.Schema;
            options.UserTable        = userTable ?? options.UserTable;
            options.RoleTable        = roleTable ?? options.RoleTable;

            options.Database = new Database.Npgsql(options, customQueryRepository);

            return(options);
        }
 /// <summary>
 /// Adds Npgsql as database driver.
 /// </summary>
 /// <param name="options">The <see cref="IdentityDapperOptions"/> instance this method extends.</param>
 /// <param name="connectionString">Database connection string.</param>
 /// <param name="schema">Database schema.</param>
 /// <param name="userTable">Databse user store table.</param>
 /// <param name="roleTable">Databse role store table.</param>
 /// <returns>The <see cref="IdentityDapperOptions"/> instance this method extends.</returns>
 public static IdentityDapperOptions UseNpgsql(this IdentityDapperOptions options, string connectionString, string schema, string userTable, string roleTable)
 => options.UseNpgsql(connectionString, schema, userTable, roleTable, null);
 /// <summary>
 /// Adds Npgsql as database driver.
 /// </summary>
 /// <param name="options">The <see cref="IdentityDapperOptions"/> instance this method extends.</param>
 /// <param name="connectionString">Database connection string.</param>
 /// <param name="schema">Database schema.</param>
 /// <returns>The <see cref="IdentityDapperOptions"/> instance this method extends.</returns>
 public static IdentityDapperOptions UseNpgsql(this IdentityDapperOptions options, string connectionString, string schema)
 => options.UseNpgsql(connectionString, schema, null, null, null);
 /// <summary>
 /// Adds Npgsql as database driver.
 /// </summary>
 /// <typeparam name="TCustomDatabaseQuery">Custom query repository configuration.</typeparam>
 /// <param name="options">The <see cref="IdentityDapperOptions"/> instance this method extends.</param>
 /// <param name="connectionString">Database connection string.</param>
 /// <returns>The <see cref="IdentityDapperOptions"/> instance this method extends.</returns>
 public static IdentityDapperOptions UseNpgsql <TCustomDatabaseQuery>(this IdentityDapperOptions options, string connectionString)
     where TCustomDatabaseQuery : ICustomQueryRepository, new()
 => options.UseNpgsql(connectionString, null, null, null, new TCustomDatabaseQuery());
 /// <summary>
 /// Adds Npgsql as database driver.
 /// </summary>
 /// <param name="options">The <see cref="IdentityDapperOptions"/> instance this method extends.</param>
 /// <param name="connectionString">Database connection string.</param>
 /// <param name="customQueryRepository">Custom query repository configuration.</param>
 /// <returns>The <see cref="IdentityDapperOptions"/> instance this method extends.</returns>
 public static IdentityDapperOptions UseNpgsql(this IdentityDapperOptions options, string connectionString, ICustomQueryRepository customQueryRepository)
 => options.UseNpgsql(connectionString, null, null, null, customQueryRepository);