//------------------------------------------------------------------------------------------ //private helpers /// <summary> /// This returns all the foreign keys linking the parent table to the primary keys on the referenced table /// </summary> /// <param name="parentTableName"></param> /// <param name="referencedTableAndKey"></param> /// <returns></returns> private IList <SqlForeignKey> GetForeignKeys(string parentTableName, SqlTableInfo referencedTableAndKey) { return(_allSqlInfo.ForeignKeys.Where(x => x.ParentTableName == parentTableName && x.ReferencedTableName == referencedTableAndKey.TableName && referencedTableAndKey.ColumnInfos.Where(y => y.IsPrimaryKey) .Select(y => y.ColumnName) .Contains(x.ReferencedColName)).ToList()); }
static TestHelper() { var splitSep = new[] { ' ', ',' }; defaultTableInfo = new SqlTableInfo { TableName = Consts.DEF_TABLE, KeyColumn = Consts.DEF_KEY, WritableCols = Consts.DEF_DATACOLS.Split(splitSep, StringSplitOptions.RemoveEmptyEntries), Columns = Consts.DEF_COLUMNS.Split(splitSep, StringSplitOptions.RemoveEmptyEntries), }; }
private async Task <IEnumerable <ICompletionData> > Columns(SqlTableInfo info, bool includeAlias = true) { var result = new List <ICompletionData>(); var alias = info.Alias; if (this._tableNameColumnPrefix && info.Name != null) { alias = "[" + info.Name.Name + "]"; } if (!includeAlias) { alias = null; } if (info.Columns == null && info.AdditionalColumns == null) { var allProps = await _provider.GetColumnNames(info.Name.FullName).ToTask(); result.AddRange(new PropertyCompletionFactory().GetCompletions(allProps, alias)); } else { if (info.Columns != null) { result.AddRange(info.Columns .Select(c => ColumnCompletion(c, alias))); } if (info.AdditionalColumns != null) { var properties = (await Promises.All(info.AdditionalColumns .Select(i => _provider.GetColumnNames(i.Name.FullName)).ToArray()) .ToTask()).OfType <IEnumerable <IListValue> >(); var allProps = properties.SelectMany(p => p); result.AddRange(new PropertyCompletionFactory().GetCompletions(allProps, alias)); } } return(result); }
private async Task<IEnumerable<ICompletionData>> Columns(SqlTableInfo info, bool includeAlias = true) { var result = new List<ICompletionData>(); var alias = info.Alias; if (this._tableNameColumnPrefix && info.Name != null) alias = "[" + info.Name.Name + "]"; if (!includeAlias) alias = null; if (info.Columns == null && info.AdditionalColumns == null) { var allProps = await _provider.GetColumnNames(info.Name.FullName).ToTask(); result.AddRange(new PropertyCompletionFactory().GetCompletions(allProps, alias)); } else { if (info.Columns != null) { result.AddRange(info.Columns .Select(c => ColumnCompletion(c, alias))); } if (info.AdditionalColumns != null) { var properties = (await Promises.All(info.AdditionalColumns .Select(i => _provider.GetColumnNames(i.Name.FullName)).ToArray()) .ToTask()).OfType<IEnumerable<IListValue>>(); var allProps = properties.SelectMany(p => p); result.AddRange(new PropertyCompletionFactory().GetCompletions(allProps, alias)); } } return result; }