public override void ExitSelectAttributeOrFunction([NotNull] QueryBuilderQueriesParser.SelectAttributeOrFunctionContext context) { List <ProjectArgument> Arguments = new List <ProjectArgument>(); foreach (var selectAttribute in context.attributeOrFunction().Where(af => af.simpleAttribute() != null)) { var sa = selectAttribute.simpleAttribute(); QueryableEntity qElement = new QueryableEntity(metadata.EntityRelationshipModel.FindByName(sa.elementName.Text)); Arguments.Add(new ProjectArgument(qElement.GetAttribute(sa.attribute.Text), qElement, new QueryBuilder.Mongo.Expressions.BooleanExpr(true))); } ProjectOp = new ProjectStage(Arguments, metadata.ERMongoMapping); }
/// <summary> /// Exit a parse tree produced by the <c>selectAttributeOrFunction</c> /// labeled alternative in <see cref="QueryBuilderQueriesParser.select"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitSelectAttributeOrFunction([NotNull] QueryBuilderQueriesParser.SelectAttributeOrFunctionContext context) { }
/// <summary> /// Visit a parse tree produced by the <c>selectAttributeOrFunction</c> /// labeled alternative in <see cref="QueryBuilderQueriesParser.select"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitSelectAttributeOrFunction([NotNull] QueryBuilderQueriesParser.SelectAttributeOrFunctionContext context) { return(VisitChildren(context)); }