Browse Source

Add controller type to ApplicationApiDescriptionModel

pull/96/head
Halil İbrahim Kalkan 9 years ago
parent
commit
d5e69a623f
  1. 10
      src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs
  2. 8
      src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs
  3. 4
      src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ModuleApiDescriptionModel.cs

10
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;

8
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<string, ActionApiDescriptionModel> 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<string, ActionApiDescriptionModel>();
}

4
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)

Loading…
Cancel
Save