private Expression SingleFieldOnlyArgMethod(string name, Expression node) { WriteAppendAtFix(() => { SQLWriter.Select(); BuildSingleOneArgField(name, node); if (SQLWriter.IsUnion) { _fromSwitch.Execute(); SQLWriter.OpenBrace(); SQLWriter.AppendAt = -1; SQLWriter.CloseBrace(); SQLWriter.WhiteSpace(); SQLWriter.TableName("CTE_UNION"); } }, () => base.Visit(node)); return(node); }
private Expression SingleFieldTwoArgOrCountMethod(string name, MethodCallExpression node) { WriteAppendAtFix(() => { SQLWriter.Select(); SQLWriter.Write(name); SQLWriter.OpenBrace(); if (node.Arguments.Count > 1) { base.Visit(node.Arguments[1]); } else { SQLWriter.Write("1"); } SQLWriter.CloseBrace(); if (SQLWriter.IsUnion) { SQLWriter.From(); SQLWriter.OpenBrace(); } }, () => base.Visit(node.Arguments[0])); if (SQLWriter.IsUnion) { SQLWriter.CloseBrace(); SQLWriter.WhiteSpace(); SQLWriter.TableName("CTE_UNION"); } return(node); }