private static void AnalyzeInstanceInvocation(IMethodSymbol methodSymbol, PXContext pxContext, SyntaxNodeAnalysisContext syntaxContext,
                                                      InvocationExpressionSyntax invocationNode)
        {
            ExpressionSyntax accessExpression = invocationNode.GetAccessNodeFromInvocationNode();

            if (accessExpression == null || syntaxContext.CancellationToken.IsCancellationRequested)
            {
                return;
            }

            int?argsCount = GetBqlArgumentsCount(methodSymbol, pxContext, syntaxContext, invocationNode);

            if (argsCount == null || syntaxContext.CancellationToken.IsCancellationRequested)
            {
                return;
            }

            ITypeSymbol containingType = GetContainingTypeForInstanceCall(pxContext, syntaxContext, accessExpression);

            if (containingType == null)
            {
                return;
            }

            BqlParameterMismatchAnalyzer.ParametersCounterSymbolWalker walker = new BqlParameterMismatchAnalyzer.ParametersCounterSymbolWalker(syntaxContext, pxContext);

            if (!walker.CountParametersInTypeSymbol(containingType))
            {
                return;
            }

            VerifyBqlArgumentsCount(argsCount.Value, walker.ParametersCounter, syntaxContext, invocationNode, methodSymbol);
        }
        private static void AnalyzeDerivedBqlStaticCall(IMethodSymbol methodSymbol, PXContext pxContext, SyntaxNodeAnalysisContext syntaxContext)
        {
            INamedTypeSymbol containingType = methodSymbol.ContainingType;

            if (containingType.IsUnboundGenericType || !containingType.IsBqlCommand() || containingType.IsCustomBqlCommand(pxContext) ||
                syntaxContext.CancellationToken.IsCancellationRequested)
            {
                return;
            }

            var invocationNode = syntaxContext.Node as InvocationExpressionSyntax;
            int?argsCount      = GetBqlArgumentsCount(methodSymbol, pxContext, syntaxContext, invocationNode);

            if (argsCount == null || syntaxContext.CancellationToken.IsCancellationRequested)
            {
                return;
            }

            BqlParameterMismatchAnalyzer.ParametersCounterSymbolWalker walker = new BqlParameterMismatchAnalyzer.ParametersCounterSymbolWalker(syntaxContext, pxContext);

            if (!walker.CountParametersInTypeSymbol(containingType))
            {
                return;
            }

            VerifyBqlArgumentsCount(argsCount.Value, walker.ParametersCounter, syntaxContext, invocationNode, methodSymbol);
        }