From d5e69a623f5522bcc2b99304d1dba09ffd32fe73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Sep 2017 09:52:26 +0300 Subject: [PATCH] Add controller type to ApplicationApiDescriptionModel --- .../Mvc/AspNetCoreApiDescriptionModelProvider.cs | 10 ++++++---- .../Abp/Http/Modeling/ControllerApiDescriptionModel.cs | 8 +++++++- .../Abp/Http/Modeling/ModuleApiDescriptionModel.cs | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs index 49eb9ebd43..6b400796a1 100644 --- a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs +++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs @@ -54,8 +54,11 @@ namespace Volo.Abp.AspNetCore.Mvc private void AddApiDescriptionToModel(ApiDescription apiDescription, ApplicationApiDescriptionModel model) { - var moduleModel = model.GetOrAddModule(GetModuleName(apiDescription)); - var controllerModel = moduleModel.GetOrAddController(GetControllerName(apiDescription)); + var controllerType = apiDescription.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(); + + var moduleModel = model.GetOrAddModule(GetModuleName(controllerType)); + + var controllerModel = moduleModel.GetOrAddController(GetControllerName(apiDescription), controllerType); var method = apiDescription.ActionDescriptor.GetMethodInfo(); @@ -153,9 +156,8 @@ namespace Volo.Abp.AspNetCore.Mvc return modelNameProvider.Name; } - private string GetModuleName(ApiDescription apiDescription) + private string GetModuleName(Type controllerType) { - var controllerType = apiDescription.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.AsType(); if (controllerType == null) { return AbpControllerAssemblySetting.DefaultServiceModuleName; diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs index ee30fb82ce..b261c62416 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs @@ -9,6 +9,10 @@ namespace Volo.Abp.Http.Modeling { public string Name { get; } + public Type Type { get; } + + public string TypeAsString { get; } + public IDictionary Actions { get; } private ControllerApiDescriptionModel() @@ -16,9 +20,11 @@ namespace Volo.Abp.Http.Modeling } - public ControllerApiDescriptionModel(string name) + public ControllerApiDescriptionModel(string name, Type type) { Name = name; + Type = type; + TypeAsString = type.FullName; Actions = new Dictionary(); } diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ModuleApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ModuleApiDescriptionModel.cs index f87db87693..a390550157 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ModuleApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ModuleApiDescriptionModel.cs @@ -33,9 +33,9 @@ namespace Volo.Abp.Http.Modeling return Controllers[controller.Name] = controller; } - public ControllerApiDescriptionModel GetOrAddController(string name) + public ControllerApiDescriptionModel GetOrAddController(string name, Type type) { - return Controllers.GetOrAdd(name, () => new ControllerApiDescriptionModel(name)); + return Controllers.GetOrAdd(name, () => new ControllerApiDescriptionModel(name, type)); } public ModuleApiDescriptionModel CreateSubModel(string[] controllers, string[] actions)