* Updated the code docs to work with new assemblies and namespaces+added conditional build to default pipeline * updated script that generate docs to use .NET 5 * Increased timeout of docs generation + changed to 5.x instead of 5.0.x Fixed wrong namespace, that would be we not have docs for it. * Fixed names in toc, so they are not that long and changed ordering * try custom hack https://github.com/dotnet/docfx/issues/1254#issuecomment-294080535 * revert nonworking hack - Divide prep steps into two. * Changed ordering * Try to generate docs without the build.ps1 script * Try to generate docs without the build.ps1 script * Try to generate docs without the build.ps1 script * Try to remove the examine one, to test if that is the reason it fails on azure pipeline * Try to remove the sqlce one, to test if that is the reason it fails on azure pipeline * Reintroduce Examine and SqlCE docs, as these was not the reason it will not work on azure pipeline. * Test if azure wanna build the docs without explicit version * Fixed two malformed xml docs * hardcode version of docfx, to hopefully let it pass on azure pipeline * hardcode version of docfx, to hopefully let it pass on azure pipeline * Restructure azure pipeline yaml to have stages as areas instead of OS * Restructure azure pipeline yaml to have stages as areas instead of OS * yml restructure * yml restructure * yml restructure * Not hardcoding docfx as the old versions also fail on azure * Fixed Badly formed XML comments * moved condition from job to stage * split build and metadata * indentation * removed wrong char * Try to add more loging on azure pipeline * include less * include less projects * add one more project * More azure pipeline test * indentation * All except infrastructure * publish tasks * Fix link on logo * Extensions also included * Less links * re-introduced infrastructure to the list of projects for generate docfx for. * Add filter * Remove single warning for xmldocs * more logging? * skip some things from the metadata * test using other image * Test if exclude filter works * Test with more explict filters, allowing some docs from Infrastructure * binary search for the file that is the issue * binary search for the file that is the issue * binary search for the file that is the issue * Exclude more folders * Exclude more folders and files * Only exclude files in root of namespace? * more filter trials * more filter trials * add 2 nested folders * all cs files? * Remove test projects * Toc * Update build/azure-pipelines.yml * move display name element * Update build/azure-pipelines.yml Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Microsoft.AspNetCore.Mvc.ApplicationModels;
|
|
using Umbraco.Cms.Core.Models.PublishedContent;
|
|
using Umbraco.Cms.Web.Common.Controllers;
|
|
using Umbraco.Extensions;
|
|
|
|
namespace Umbraco.Cms.Web.Common.ApplicationModels
|
|
{
|
|
/// <summary>
|
|
/// Applies the <see cref="VirtualPageConvention"/> to any action on a controller that is <see cref="IVirtualPageController"/>
|
|
/// </summary>
|
|
public class VirtualPageApplicationModelProvider : IApplicationModelProvider
|
|
{
|
|
private readonly List<IActionModelConvention> _actionModelConventions = new List<IActionModelConvention>()
|
|
{
|
|
new VirtualPageConvention()
|
|
};
|
|
|
|
/// <inheritdoc />
|
|
/// <summary>
|
|
/// Will execute after <see cref="DefaultApplicationModelProvider"/>
|
|
/// </summary>
|
|
public int Order => 0;
|
|
|
|
/// <inheritdoc />
|
|
public void OnProvidersExecuted(ApplicationModelProviderContext context) { }
|
|
|
|
/// <inheritdoc />
|
|
public void OnProvidersExecuting(ApplicationModelProviderContext context)
|
|
{
|
|
foreach (ControllerModel controller in context.Result.Controllers)
|
|
{
|
|
if (!IsVirtualPageController(controller))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach (ActionModel action in controller.Actions.ToList())
|
|
{
|
|
if (action.ActionName == nameof(IVirtualPageController.FindContent)
|
|
&& action.ActionMethod.ReturnType == typeof(IPublishedContent))
|
|
{
|
|
// this is not an action, it's just the implementation of IVirtualPageController
|
|
controller.Actions.Remove(action);
|
|
}
|
|
else
|
|
{
|
|
foreach (IActionModelConvention convention in _actionModelConventions)
|
|
{
|
|
convention.Apply(action);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private bool IsVirtualPageController(ControllerModel controller)
|
|
=> controller.ControllerType.Implements<IVirtualPageController>();
|
|
}
|
|
}
|