FAManagementStudio.Models.DatabaseInfo.GetSystemTables C# (CSharp) Method

GetSystemTables() public method

public GetSystemTables ( FirebirdSql.Data.FirebirdClient.FbConnection con ) : IEnumerable
con FirebirdSql.Data.FirebirdClient.FbConnection
return IEnumerable
        public IEnumerable<TableInfo> GetSystemTables(FbConnection con)
        {
            using (var command = con.CreateCommand())
            {
                command.CommandText = @"select trim(rdb$relation_name) AS Name from rdb$relations where rdb$relation_type = 0 and rdb$system_flag = 1 order by rdb$relation_name asc";
                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    yield return new TableInfo((string)reader["Name"], 1);
                }
            }
        }

Usage Example

 public async Task LoadSystemTables(DatabaseInfo dbInf)
 {
     _dbInfo = dbInf;
     var table = new List<ITableViewModel>();
     await Task.Run(() =>
     {
         using (var con = new FbConnection(_dbInfo.ConnectionString))
         {
             con.Open();
             foreach (var item in _dbInfo.GetSystemTables(con))
             {
                 var vm = new TableViewModel(item.TableName, true);
                 foreach (var colums in item.GetColums(con))
                 {
                     vm.Colums.Add(new ColumViewMoodel(colums));
                 }
                 table.Add(vm);
             }
         }
     });
     Tables.AddRange(table);
     CollectionViewSource.GetDefaultView(Tables).Refresh();
     RaisePropertyChanged(nameof(Tables));
 }