private static IEnumerable<XObject> ConditionValues(WhereClauseInfo whereClause) { IEnumerable<XObject> conditionValues; if (whereClause.Values.Count == 1) { conditionValues = from whereClauseValue in whereClause.Values select new XAttribute("value", whereClauseValue); } else { conditionValues = from whereClauseValue in whereClause.Values select new XElement("value", whereClauseValue); } return conditionValues; }
public static Dictionary<string, WhereClauseInfo> WhereClauseInfos(QuerySpecification querySpecification) { var whereClauseExpressions = WhereClauseExpressions(querySpecification); var whereClauseInfos = new Dictionary<string, WhereClauseInfo>(); foreach (var whereClauseExpression in whereClauseExpressions) { var tableName = TableFromFullyQualifiedColumnName(WhereClauseColumn(whereClauseExpression), querySpecification); var columnName = ColumnFromFullyQualifiedColumnName(WhereClauseColumn(whereClauseExpression)); var operatorAbbreviation = ExpressionComparisonPart(whereClauseExpression); var values = WhereClauseValues(whereClauseExpression); var whereClauseInfo = new WhereClauseInfo { TableName = tableName, ColumnName = columnName, OperatorAbbreviation = operatorAbbreviation, Values = values }; whereClauseInfos.Add(whereClauseInfo.TableName + "." + whereClauseInfo.ColumnName, whereClauseInfo); } return whereClauseInfos; }