public async Task LoadDatabase(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.GetTables(con))
{
var vm = new TableViewModel(item.TableName);
foreach (var colums in item.GetColums(con))
{
vm.Colums.Add(new ColumViewMoodel(colums));
}
foreach (var trigger in item.GetTrigger(con))
{
vm.Triggers.Add(new TriggerViewModel(trigger));
}
foreach (var idx in item.GetIndex(con))
{
vm.Indexs.Add(new IndexViewModel(idx));
}
table.Add(vm);
}
foreach (var item in _dbInfo.GetViews(con))
{
var vm = new TableViewViewModel(item.ViewName, item.Source);
foreach (var colums in item.GetColums(con))
{
vm.Colums.Add(new ColumViewMoodel(colums));
}
table.Add(vm);
}
}
});
Tables = table;
AdditionalInfo = new AdditionalDbInfoControl(this);
RaisePropertyChanged(nameof(Tables));
RaisePropertyChanged(nameof(AdditionalInfo));
}