コード例 #1
0
ファイル: CSharpParser.cs プロジェクト: 0xb1dd1e/NRefactory
			public override object Visit(Mono.CSharp.Linq.Where where)
			{
				var result = new QueryWhereClause();
				result.AddChild(new CSharpTokenNode(Convert(where.Location), QueryWhereClause.WhereKeywordRole), QueryWhereClause.WhereKeywordRole);
				if (where.Expr != null)
					result.AddChild((Expression)where.Expr.Accept(this), Roles.Condition);
				return result;
			}
コード例 #2
0
 public virtual void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     if (this.ThrowException)
     {
         throw (Exception)this.CreateException(queryWhereClause);
     }
 }
コード例 #3
0
ファイル: CSharpParser.cs プロジェクト: N3X15/ILSpy
			public override object Visit (Mono.CSharp.Linq.Where w)
			{
				var result = new QueryWhereClause ();
				var location = LocationsBag.GetLocations (w);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[0]), "where".Length), QueryWhereClause.Roles.Keyword);
				result.AddChild ((Expression)w.Expr.Accept (this), QueryWhereClause.Roles.Condition);
				return result;
			}
コード例 #4
0
ファイル: IndexVisitor.cs プロジェクト: j2jensen/ravendb
 public override void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     base.VisitQueryWhereClause(queryWhereClause);
     indexData.HasWhere = true;
 }
コード例 #5
0
 public StringBuilder VisitQueryWhereClause(QueryWhereClause queryWhereClause, int data)
 {
     throw new SLSharpException("SL# does not understand LINQ.");
 }
コード例 #6
0
 public JsNode VisitQueryWhereClause(QueryWhereClause node)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
		public override void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
		{
			FixClauseIndentation(queryWhereClause, queryWhereClause.WhereKeyword);
		}
コード例 #8
0
 public void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
ファイル: Lower.cs プロジェクト: evanw/minisharp
 public void VisitQueryWhereClause(QueryWhereClause node)
 {
     NotSupported(node);
 }
コード例 #10
0
 public RedILNode VisitQueryWhereClause(QueryWhereClause queryWhereClause, State data)
 {
     throw new System.NotImplementedException();
 }
コード例 #11
0
 public StringBuilder VisitQueryWhereClause(QueryWhereClause queryWhereClause, int data)
 {
     throw new ASLException("ASL does not understand LINQ.");
 }
コード例 #12
0
 public virtual Node VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     throw new System.NotImplementedException();
 }
コード例 #13
0
 public override void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
 }
コード例 #14
0
 public override void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     base.VisitQueryWhereClause(queryWhereClause);
     indexData.HasWhere = true;
 }
		public virtual void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
		{
			VisitChildren (queryWhereClause);
		}
コード例 #16
0
ファイル: AstCsToJson.cs プロジェクト: CompilerKit/CodeWalk
 public void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
 {
     throw new NotImplementedException();
 }
コード例 #17
0
ファイル: CSharpOutputVisitor.cs プロジェクト: x-strong/ILSpy
		public void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
		{
			StartNode(queryWhereClause);
			WriteKeyword(QueryWhereClause.WhereKeywordRole);
			Space();
			queryWhereClause.Condition.AcceptVisitor(this);
			EndNode(queryWhereClause);
		}
コード例 #18
0
        private static void HandleCollectionName(Expression expression, QueryFromClause fromClause, QueryExpression queryExpression, ref string entityName)
        {
            // from d in docs.Users.SelectMany(x=>x.Roles) ...
            // from d in docs.Users.Where(x=>x.IsActive)   ...
            var    mie          = expression as InvocationExpression;
            string methodToCall = null;

            if (mie != null)
            {
                expression = mie.Target;

                var target = expression as MemberReferenceExpression;
                if (target != null)
                {
                    methodToCall = target.MemberName;
                    expression   = target.Target;
                }
            }

            var mre = expression as MemberReferenceExpression;

            if (mre == null)
            {
                return;
            }

            string oldIdentifier = fromClause.Identifier;

            if (mie != null)
            {
                fromClause.Identifier += "Item";
            }

            entityName            = mre.MemberName;
            fromClause.Expression = mre.Target;
            //doc["@metadata"]["Raven-Entity-Name"]
            var metadata = new IndexerExpression(
                new IndexerExpression(new IdentifierExpression(fromClause.Identifier), new List <Expression> {
                new StringLiteralExpression("@metadata")
            }),
                new List <Expression> {
                new StringLiteralExpression(Constants.RavenEntityName)
            }
                );

            // string.Equals(doc["@metadata"]["Raven-Entity-Name"], "Blogs", StringComparison.OrdinalIgnoreCase)
            var binaryOperatorExpression =
                new InvocationExpression(
                    new MemberReferenceExpression(new TypeReferenceExpression(new PrimitiveType("string")), "Equals"),
                    new List <Expression>
            {
                metadata,
                new StringLiteralExpression(mre.MemberName),
                new MemberReferenceExpression(new TypeReferenceExpression(new SimpleType(typeof(StringComparison).FullName)), "InvariantCultureIgnoreCase")
            });

            var queryWhereClause = new QueryWhereClause
            {
                Condition = binaryOperatorExpression
            };

            ((QueryExpression)fromClause.Parent).Clauses.InsertAfter(fromClause,
                                                                     queryWhereClause);

            if (mie != null)
            {
                var newSource = new ArrayCreateExpression
                {
                    Initializer = new ArrayInitializerExpression(new IdentifierExpression(fromClause.Identifier)),
                    AdditionalArraySpecifiers = { new ArraySpecifier(1) }
                };
                queryExpression.Clauses.InsertAfter(queryWhereClause, new QueryFromClause
                {
                    Identifier = oldIdentifier,
                    Expression = new InvocationExpression(new MemberReferenceExpression(newSource, methodToCall), mie.Arguments.Select(x => x.Clone()))
                });
            }
        }