public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node)
            {
                if (_visited)
                {
                    return(base.VisitInvocationExpression(node));
                }

                _visited = true;

                var resultsIdentifer = (((node.Expression as MemberAccessExpressionSyntax) // mapResults.GroupBy(x => x.Type).Select
                                         ?.Expression as InvocationExpressionSyntax)       // mapResults.GroupBy(x => x.Type)
                                        ?.Expression as MemberAccessExpressionSyntax)      // mapResults.GroupBy
                                       ?.Expression as IdentifierNameSyntax;               // mapResults

                if (resultsIdentifer == null)
                {
                    return(base.VisitInvocationExpression(node));
                }

                if (ResultsVariable.Equals(resultsIdentifer.Identifier.Text, StringComparison.Ordinal))
                {
                    return(base.VisitInvocationExpression(node));
                }

                return(node.ReplaceNode(resultsIdentifer, SyntaxFactory.ParseExpression(ResultsVariable)));
            }
            public override SyntaxNode VisitFromClause(FromClauseSyntax node)
            {
                if (_visited)
                {
                    return(base.VisitFromClause(node));
                }

                _visited = true;

                var resultsIdentifer = node.Expression as IdentifierNameSyntax;

                if (resultsIdentifer == null)
                {
                    return(node);
                }

                if (ResultsVariable.Equals(resultsIdentifer.Identifier.Text, StringComparison.Ordinal))
                {
                    return(base.VisitFromClause(node));
                }

                return(node.ReplaceNode(resultsIdentifer, SyntaxFactory.ParseExpression(ResultsVariable)));
            }