Ejemplo n.º 1
0
        public static async Task <PostgresDbConnection> Open(
            CancellationToken cancellationToken)
        {
            var connection = new PostgresDbConnection(ConnectionString);
            await connection.OpenAsync(cancellationToken);

            return(connection);
        }
Ejemplo n.º 2
0
        public static IAVSCDatabase GetIAVSCDatabase
        (
            DatabaseType databaseType,
            string serverName,
            string username,
            string password,
            string databaseName
        )
        {
            IAVSCDatabase db;

            switch (databaseType)
            {
            case DatabaseType.Postgres:
            {
                db = new PostgresDbConnection(
                    serverName, username, password, databaseName);
            }
            break;

            case DatabaseType.MySql:
            {
                db = new MySqlDbConnection(
                    serverName, username, password, databaseName);
            }
            break;

            case DatabaseType.SqlServer:
            {
                db = new SqlServerDbConnection(
                    serverName, username, password, databaseName);
            }
            break;

            default:
            {
                throw new NotSupportedDatabaseException();
            }
            }

            return(db);
        }
Ejemplo n.º 3
0
        private static async Task CreateTempUsers(
            PostgresDbConnection connection)
        {
            const string schema = @"
                CREATE TEMP TABLE tempUser (id int4, name text, location text);

                INSERT INTO tempUser (id, name, location) VALUES
                (0, 'guy one', 'Mars'),
                (1, 'guy two', 'Jupiter'),
                (2, 'guy three', 'Venus');

                CREATE TEMP TABLE tempUserInfo (id int4, user_id int4, info text);

                INSERT INTO tempUserInfo (id, user_id, info) VALUES
                (0, 0, 'info one'),
                (1, 0, 'info two'),
                (2, 0, 'info three'),
                (3, 1, 'info one'),
                (4, 1, 'info two');";

            await connection.ExecuteAsync(schema);
        }
Ejemplo n.º 4
0
        private static async Task <TempUser[]> ReadTempUsers(
            PostgresDbConnection connection, string query, object param)
        {
            var userLookup = new Dictionary <int, TempUser>();

            await connection
            .QueryAsync <TempUser, TempUserInfo, TempUser>(
                query, (user, info) => {
                if (!userLookup.TryGetValue(user.Id, out var found))
                {
                    found = user;
                    userLookup[user.Id] = user;
                }

                if (info != null)
                {
                    found.Infos.Add(info);
                }

                return(found);
            }, param);

            return(userLookup.Values.ToArray());
        }
Ejemplo n.º 5
0
        public static IAVSCDatabase GetIAVSCDatabase
        (
            DatabaseType databaseType,
            string connectionString
        )
        {
            IAVSCDatabase db = null;

            switch (databaseType)
            {
            case DatabaseType.Postgres:
            {
                db = new PostgresDbConnection(connectionString);
            }
            break;

            case DatabaseType.MySql:
            {
                db = new MySqlDbConnection(connectionString);
            }
            break;

            case DatabaseType.SqlServer:
            {
                db = new SqlServerDbConnection(connectionString);
            }
            break;

            default:
            {
                throw new NotSupportedDatabaseException();
            }
            }

            return(db);
        }