DocSpace-client/common/ASC.Api.Core/Convention/ControllerNameAttributeConvention.cs

31 lines
805 B
C#
Raw Normal View History

2021-03-22 16:07:34 +00:00
using System;
using System.Linq;
using Microsoft.AspNetCore.Mvc.ApplicationModels;
namespace ASC.Api.Core.Convention
{
[AttributeUsage(AttributeTargets.Class)]
public class ControllerNameAttribute : Attribute
{
public string Name { get; }
public ControllerNameAttribute(string name)
{
Name = name;
}
}
public class ControllerNameAttributeConvention : IControllerModelConvention
{
public void Apply(ControllerModel controller)
{
var controllerNameAttribute = controller.Attributes.OfType<ControllerNameAttribute>().SingleOrDefault();
if (controllerNameAttribute != null)
{
controller.ControllerName = controllerNameAttribute.Name;
}
}
}
}