private static void AddSchemaChildrens(DataRepositoryItem dbItem, IEnumerable <string> tableNames, IEnumerable <string> viewNames, string iconUri, string name, string databaseName) { if (!tableNames.Any() && !viewNames.Any()) { return; } PostgreSchemaDataRepositoryItem schemaItem = new PostgreSchemaDataRepositoryItem(); schemaItem.Name = String.Format(CultureInfo.InvariantCulture, "{0}", name); schemaItem.SchemaName = schemaItem.Name; schemaItem.Icon = new BitmapImage(new Uri(iconUri, UriKind.RelativeOrAbsolute)); dbItem.Children.Add(schemaItem); AddChildrens(schemaItem, tableNames.ToList(), "/GisEditorPluginCore;component/Images/tables.png", "Tables", tmpName => { PostgreTableDataRepositoryItem tableItem = new PostgreTableDataRepositoryItem(); tableItem.TableName = tmpName; tableItem.SchemaName = schemaItem.Name; tableItem.DatabaseName = databaseName; return(tableItem); }); AddChildrens(schemaItem, viewNames.ToList(), "/GisEditorPluginCore;component/Images/dataviews.png", "Views", tmpName => { PostgreViewDataRepositoryItem viewItem = new PostgreViewDataRepositoryItem(); viewItem.ViewName = tmpName; viewItem.SchemaName = schemaItem.Name; viewItem.DatabaseName = databaseName; return(viewItem); }); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string name = string.Empty; MsSqlTableDataRepositoryItem item = value as MsSqlTableDataRepositoryItem; PostgreTableDataRepositoryItem postgreItem = value as PostgreTableDataRepositoryItem; PostgreViewDataRepositoryItem postgreViewItem = value as PostgreViewDataRepositoryItem; if (item != null) { string database = item.DatabaseName; name = string.Format(CultureInfo.InvariantCulture, "{0}: {1}.{2}", database, item.SchemaName, item.Name); } else if (postgreItem != null) { string database = postgreItem.DatabaseName; string schema = postgreItem.SchemaName; name = string.Format(CultureInfo.InvariantCulture, "{0}: {1}.{2}", database, schema, postgreItem.Name); } else if (postgreViewItem != null) { string database = postgreItem.DatabaseName; string schema = postgreItem.SchemaName; name = string.Format(CultureInfo.InvariantCulture, "{0}: {1}.{2}", database, schema, postgreItem.Name); } return(name); }