31 lines
1001 B
C#
31 lines
1001 B
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.Linq;
|
|
|
|
namespace Microsoft.AspNetCore.Razor.Evolution
|
|
{
|
|
internal class DefaultRazorDocumentClassifierPhase : RazorEnginePhaseBase, IRazorDocumentClassifierPhase
|
|
{
|
|
public IRazorDocumentClassifierPass[] Passes { get; private set; }
|
|
|
|
protected override void OnIntialized()
|
|
{
|
|
Passes = Engine.Features.OfType<IRazorDocumentClassifierPass>().OrderBy(p => p.Order).ToArray();
|
|
}
|
|
|
|
protected override void ExecuteCore(RazorCodeDocument codeDocument)
|
|
{
|
|
var irDocument = codeDocument.GetIRDocument();
|
|
ThrowForMissingDependency(irDocument);
|
|
|
|
foreach (var pass in Passes)
|
|
{
|
|
pass.Execute(codeDocument, irDocument);
|
|
}
|
|
|
|
codeDocument.SetIRDocument(irDocument);
|
|
}
|
|
}
|
|
}
|