private static Collection <DatabaseModel> GetDatabaseItems(object obj) { MsSql2008FeatureLayerInfo tempParam = (MsSql2008FeatureLayerInfo)obj; Collection <DatabaseModel> result = new Collection <DatabaseModel>(); foreach (var dbName in tempParam.CollectDatabaseFromServer()) { DatabaseModel dbItem = new DatabaseModel(dbName); try { Collection <string> tableNames = tempParam.CollectTablesFromDatabase(dbName); Collection <string> viewNames = tempParam.CollectViewsFromDatabase(dbName); foreach (var item in tableNames) { TableModel model = new TableModel(item); string schema = string.Empty; int index = item.IndexOf(".", StringComparison.Ordinal); if (index != -1) { schema = item.Substring(0, index); } model.SchemaName = schema; dbItem.TableModels.Add(model); } foreach (var item in viewNames) { TableModel model = new TableModel(item); model.IsView = true; string schema = string.Empty; int index = item.IndexOf(".", StringComparison.Ordinal); if (index != -1) { schema = item.Substring(0, index); } model.SchemaName = schema; dbItem.TableModels.Add(model); } } catch { } result.Add(dbItem); } return(result); }