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);
}
}