Browse Source

Only remove controller if has base controller model

Some third-party base controllers are non-abstract.
pull/7766/head
Aaron Chong 6 years ago
parent
commit
c504993946
  1. 17
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs

17
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs

@ -104,11 +104,22 @@ namespace Volo.Abp.AspNetCore.Mvc.Conventions
.Where(t => !t.IsAbstract) .Where(t => !t.IsAbstract)
.ToArray(); .ToArray();
if (baseControllerTypes.Length > 0) if (baseControllerTypes.Length == 0)
{ {
controllerModelsToRemove.Add(controllerModel); continue;
Logger.LogInformation($"Removing the controller {controllerModel.ControllerType.AssemblyQualifiedName} from the application model since it replaces the controller(s): {baseControllerTypes.Select(c => c.AssemblyQualifiedName).JoinAsString(", ")}"); }
var baseControllerModels = application.Controllers
.Where(cm => baseControllerTypes.Contains(cm.ControllerType))
.ToArray();
if (baseControllerModels.Length == 0)
{
continue;
} }
controllerModelsToRemove.Add(controllerModel);
Logger.LogInformation($"Removing the controller {controllerModel.ControllerType.AssemblyQualifiedName} from the application model since it replaces the controller(s): {baseControllerTypes.Select(c => c.AssemblyQualifiedName).JoinAsString(", ")}");
} }
application.Controllers.RemoveAll(controllerModelsToRemove); application.Controllers.RemoveAll(controllerModelsToRemove);

Loading…
Cancel
Save