internal PolicyAssignmentContext()

in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentVisitor.cs [131:167]


            internal PolicyAssignmentContext(PipelineContext context, bool keepDuplicates = false)
            {
                _KeepDuplicates = keepDuplicates;
                _ExpressionFactory = new ExpressionFactory(policy: true);
                _ExpressionBuilder = new ExpressionBuilder(_ExpressionFactory);
                _PolicyAliasProviderHelper = new PolicyAliasProviderHelper();
                _Definitions = [];
                DefinitionParameterMap = new Dictionary<string, IDictionary<string, IParameterValue>>(StringComparer.OrdinalIgnoreCase);
                _Validator = new TemplateValidator();
                _ParameterAssignments = new Dictionary<string, JToken>();
                Pipeline = context;
                _FieldPrefix = new Stack<string>();

                ResourceGroup = context?.Option?.Configuration?.ResourceGroup ?? ResourceGroupOption.Default;
                Subscription = context?.Option?.Configuration?.Subscription ?? SubscriptionOption.Default;
                Tenant = context?.Option?.Configuration?.Tenant ?? TenantOption.Default;
                ManagementGroup = context?.Option?.Configuration?.ManagementGroup ?? ManagementGroupOption.Default;
                Deployer = context?.Option?.Configuration?.Deployer ?? DeployerOption.Default;

                PolicyRulePrefix = ConfigurationOption.Default.PolicyRulePrefix;
                if (context?.Option?.Configuration?.PolicyRulePrefix != null)
                    PolicyRulePrefix = context?.Option?.Configuration?.PolicyRulePrefix;

                _PolicyIgnore = new PolicyIgnoreData().GetIndex();
                if (context?.Option?.Configuration?.PolicyIgnoreList != null &&
                    context.Option.Configuration.PolicyIgnoreList.Length > 0)
                {
                    foreach (var id in context.Option.Configuration.PolicyIgnoreList)
                    {
                        _PolicyIgnore[id] = new PolicyIgnoreResult
                        {
                            Reason = PolicyIgnoreReason.Configured
                        };
                    }
                }
                _ReplacementRules = [];
            }