public override void Analyze(SymbolAnalysisContext context, PXContext pxContext, DacSemanticModel dacOrExtension) { context.CancellationToken.ThrowIfCancellationRequested(); bool isDacFullyUnbound = dacOrExtension.IsFullyUnbound(); if (isDacFullyUnbound) { return; } foreach (DacPropertyInfo property in dacOrExtension.DeclaredDacProperties) { context.CancellationToken.ThrowIfCancellationRequested(); AnalyzeProperty(context, pxContext, dacOrExtension, property); } }
protected virtual bool ShouldMakeSpecificAnalysisForDacKeys(PXContext context, DacSemanticModel dac) { if (dac.IsFullyUnbound()) { return(false); } var dacAttributes = dac.Symbol.GetAttributes(); if (dacAttributes.IsDefaultOrEmpty) { return(false); } var pxCacheNameAttribute = context.AttributeTypes.PXCacheNameAttribute; var pxPrimaryGraphAttribute = context.AttributeTypes.PXPrimaryGraphAttribute; return(dacAttributes.Any(attribute => attribute.AttributeClass != null && (attribute.AttributeClass.InheritsFromOrEquals(pxCacheNameAttribute) || attribute.AttributeClass.InheritsFromOrEquals(pxPrimaryGraphAttribute)))); }