internal void ProcessAssignment()

in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentHelper.cs [31:73]


        internal void ProcessAssignment(string assignmentFile)
        {
            var rootedAssignmentFile = PSRuleOption.GetRootedPath(assignmentFile);
            if (!File.Exists(rootedAssignmentFile))
                throw new FileNotFoundException(
                    string.Format(
                        Thread.CurrentThread.CurrentCulture,
                        PSRuleResources.AssignmentFileNotFound,
                        rootedAssignmentFile),
                    rootedAssignmentFile);

            var visitor = new PolicyAssignmentDataExportVisitor();
            Context.SetSource(assignmentFile);

            try
            {
                var assignments = ReadFileArray(rootedAssignmentFile);

                // Process each assignment object
                foreach (var assignment in assignments)
                {
                    try
                    {
                        visitor.Visit(Context, assignment);
                    }
                    catch (Exception inner)
                    {
                        _PipelineContext.Writer.WriteError(inner, inner.GetBaseException().GetType().FullName, errorCategory: ErrorCategory.NotSpecified, targetObject: assignment);
                    }
                }
            }
            catch (Exception inner)
            {
                throw new AssignmentReadException(
                    string.Format(
                        Thread.CurrentThread.CurrentCulture,
                        PSRuleResources.AssignmentFileExpandFailed,
                        rootedAssignmentFile,
                        inner.Message),
                    inner,
                    rootedAssignmentFile);
            }
        }