Beispiel #1
0
        public async Task Migrate()
        {
            EnsureDatabase.For.PostgresqlDatabase(_factory.ConnectionString);

            using (var connection = _factory.CreateConnection()) {
                new [] { "hangfire", "labyrinth" }
                .ToList()
                .ForEach(db => {
                    var exists = connection.ExecuteScalar <bool>($"SELECT true FROM pg_database WHERE datname = '{db}'");
                    if (!exists)
                    {
                        connection.Execute($"CREATE DATABASE {db}");
                    }
                });
            }

            var upgrader = DeployChanges.To.PostgresqlDatabase(_factory.ConnectionString)
                           .WithScriptsEmbeddedInAssembly(this.GetType().Assembly)
                           .LogToConsole()
                           .Build();

            var result = upgrader.PerformUpgrade();

            if (result.Successful)
            {
                _logger.LogInformation("Database upgrade successful");
            }
            else
            {
                _logger.LogError("Database upgrade unsuccessful");
            }

            await Task.Delay(0);
        }
Beispiel #2
0
        public async Task <TEntity> GetById(string userName, string id)
        {
            using (var connection = _connectionFactory.CreateConnection())
            {
                var result = await connection.QueryAsync <TEntity>($"SELECT * FROM {TableName(userName)} WHERE id={id}");

                return(result.FirstOrDefault());
            }
        }
Beispiel #3
0
 public async Task <bool> Exists(string userName)
 {
     using (var connection = _factory.CreateConnection()) {
         return(await connection.ExecuteScalarAsync <bool>($"SELECT true FROM public.keys WHERE name='{userName}'"));
     }
 }