Lots of data and model setup
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
using Microsoft.AspNetCore.Mvc.ApplicationModels;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Conventions;
|
||||
|
||||
/// <summary>
|
||||
/// Ensures controllers go to the correct swagger definition.
|
||||
/// </summary>
|
||||
public class SwaggerDefinitionConvention : IControllerModelConvention
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public void Apply(ControllerModel controller)
|
||||
{
|
||||
var controllerNamespace = controller.ControllerType.Namespace; // eg. Controllers.V1
|
||||
var swaggerDefinition = controllerNamespace.Split('.').Last().ToLower();
|
||||
const string defaultRoute = "api/[controller]";
|
||||
|
||||
controller.ApiExplorer.GroupName = swaggerDefinition;
|
||||
foreach (SelectorModel selector in controller.Selectors)
|
||||
{
|
||||
if (selector.AttributeRouteModel != null && selector.AttributeRouteModel.Template == defaultRoute)
|
||||
{
|
||||
selector.AttributeRouteModel.Template = $"api/{swaggerDefinition}/[controller]";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user