void RTableRegistrationVM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "SelectedScheme") { TableTypes.Clear(); if (SelectedScheme != null) { cti.ThreadProgress.ShowWait(); using (SqlWork sqlWork = new SqlWork()) { RTableTypeM rTableType = new RTableTypeM() { TypeName = Rekod.Properties.Resources.PgReg_TablesLayersCatalogs }; sqlWork.sql = String.Format( @"SELECT pg.schemaname, pg.tablename, EXISTS(SELECT 1 FROM sys_scheme.table_info ti WHERE pg.schemaname = ti.scheme_name AND pg.tablename = ti.name_db ) as is_exsist, EXISTS(SELECT 1 FROM geometry_columns WHERE f_table_name = pg.tablename) as is_layer FROM pg_tables pg WHERE pg.schemaname = '{0}' ORDER BY pg.tablename;", SelectedScheme.SchemeName); sqlWork.ExecuteReader(); while (sqlWork.CanRead()) { RTableM rTable = new RTableM(SelectedScheme) { Name = sqlWork.GetString("tablename"), IsRegistered = sqlWork.GetBoolean("is_exsist"), TableType = sqlWork.GetBoolean("is_layer") ? ERTableType.MapLayer : ERTableType.Data, IsMapLayer = sqlWork.GetBoolean("is_layer") }; rTableType.Tables.Add(rTable); } TableTypes.Add(rTableType); } using (SqlWork sqlWork = new SqlWork()) { RTableTypeM rViewType = new RTableTypeM() { TypeName = Rekod.Properties.Resources.PgReg_Views }; sqlWork.sql = String.Format( @"SELECT pg.schemaname, pg.viewname, EXISTS(SELECT 1 FROM sys_scheme.table_info ti WHERE pg.schemaname = ti.scheme_name AND pg.viewname = ti.name_db ) as is_exsist, EXISTS(SELECT 1 FROM geometry_columns WHERE f_table_name = pg.viewname) as is_layer FROM pg_views pg WHERE pg.schemaname like '{0}' ORDER BY pg.viewname;", SelectedScheme.SchemeName); sqlWork.ExecuteReader(); while (sqlWork.CanRead()) { RTableM rTable = new RTableM(SelectedScheme) { Name = sqlWork.GetString("viewname"), IsRegistered = sqlWork.GetBoolean("is_exsist"), TableType = sqlWork.GetBoolean("is_layer") ? ERTableType.MapLayer : ERTableType.Data, IsMapLayer = sqlWork.GetBoolean("is_layer") }; rViewType.Tables.Add(rTable); } TableTypes.Add(rViewType); } cti.ThreadProgress.Close(); } } }