public JsonNetResult GetAllTables(int?dataSourceId) { DataSource dataSource = getDataSourceById(dataSourceId); var tables = _dataSourceService.GetTablesFromSource(dataSource.DataConnectionInfo); var selectableTables = new List <SelectableTableInfo>(tables.Count); foreach (var table in tables) { selectableTables.Add(new SelectableTableInfo { IsSelected = dataSource.Tables.FirstOrDefault(i => i.ObjectId == table.ObjectId) != null, // TODO: Improve performance TableInfo = table }); } return(new JsonNetResult() { Data = selectableTables }); }