internal static async Task <IDbCommandAsync> CreateDbCommand(IDbConnectionAsync connection, string text) { if (connection.State == System.Data.ConnectionState.Closed) { await connection.OpenAsync(); } var command = connection.CreateCommand(); command.CommandText = text; command.CommandType = System.Data.CommandType.Text; return(command); }
//TODO unit test this. public static async Task <Result <IReadOnlyCollection <Table> > > GetTablesFromConnectionStringAsync(IDbConnectionAsync connection, Func <ISchemaDataAdapter> adapterFactory) { try { await connection.OpenAsync(); var adapter = adapterFactory(); var tablesNames = adapter.GetTableList(); var result = tablesNames .Select(x => GetTable(adapter, x)) .ToList(); return(Success <IReadOnlyCollection <Table> > .Succeed(result)); } catch (Exception e) { //var d = Failure<SqlError>.Fail(new SqlError()); //return (Result<IReadOnlyCollection<Table>>)d; return(Failure <IReadOnlyCollection <Table>, SqlError> .Fail(new SqlError { Message = e.Message })); } }