Browse Source

Merge pull request #16086 from abpframework/issue-1810-seo

Add `virtual` to controllers of framework.
pull/16089/head
liangshiwei 4 years ago
committed by GitHub
parent
commit
63c8d2bca1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 42
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs
  2. 8
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController.cs
  3. 12
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationController.cs
  4. 34
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationScriptController.cs
  5. 6
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpApplicationLocalizationScriptController.cs
  6. 20
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxyScriptController.cs
  7. 8
      framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleController.cs

42
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs

@ -14,12 +14,12 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers;
public class ErrorController : AbpController
{
private readonly IExceptionToErrorInfoConverter _errorInfoConverter;
private readonly IHttpExceptionStatusCodeFinder _statusCodeFinder;
private readonly IStringLocalizer<AbpUiResource> _localizer;
private readonly AbpErrorPageOptions _abpErrorPageOptions;
private readonly IExceptionNotifier _exceptionNotifier;
private readonly AbpExceptionHandlingOptions _exceptionHandlingOptions;
protected readonly IExceptionToErrorInfoConverter ErrorInfoConverter;
protected readonly IHttpExceptionStatusCodeFinder StatusCodeFinder;
protected readonly IStringLocalizer<AbpUiResource> Localizer;
protected readonly AbpErrorPageOptions AbpErrorPageOptions;
protected readonly IExceptionNotifier ExceptionNotifier;
protected readonly AbpExceptionHandlingOptions ExceptionHandlingOptions;
public ErrorController(
IExceptionToErrorInfoConverter exceptionToErrorInfoConverter,
@ -29,33 +29,33 @@ public class ErrorController : AbpController
IExceptionNotifier exceptionNotifier,
IOptions<AbpExceptionHandlingOptions> exceptionHandlingOptions)
{
_errorInfoConverter = exceptionToErrorInfoConverter;
_statusCodeFinder = httpExceptionStatusCodeFinder;
_localizer = localizer;
_exceptionNotifier = exceptionNotifier;
_exceptionHandlingOptions = exceptionHandlingOptions.Value;
_abpErrorPageOptions = abpErrorPageOptions.Value;
ErrorInfoConverter = exceptionToErrorInfoConverter;
StatusCodeFinder = httpExceptionStatusCodeFinder;
Localizer = localizer;
ExceptionNotifier = exceptionNotifier;
ExceptionHandlingOptions = exceptionHandlingOptions.Value;
AbpErrorPageOptions = abpErrorPageOptions.Value;
}
public async Task<IActionResult> Index(int httpStatusCode)
public virtual async Task<IActionResult> Index(int httpStatusCode)
{
var exHandlerFeature = HttpContext.Features.Get<IExceptionHandlerFeature>();
var exception = exHandlerFeature != null
? exHandlerFeature.Error
: new Exception(_localizer["UnhandledException"]);
: new Exception(Localizer["UnhandledException"]);
await _exceptionNotifier.NotifyAsync(new ExceptionNotificationContext(exception));
await ExceptionNotifier.NotifyAsync(new ExceptionNotificationContext(exception));
var errorInfo = _errorInfoConverter.Convert(exception, options =>
var errorInfo = ErrorInfoConverter.Convert(exception, options =>
{
options.SendExceptionsDetailsToClients = _exceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = _exceptionHandlingOptions.SendStackTraceToClients;
options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients;
});
if (httpStatusCode == 0)
{
httpStatusCode = (int)_statusCodeFinder.GetStatusCode(HttpContext, exception);
httpStatusCode = (int)StatusCodeFinder.GetStatusCode(HttpContext, exception);
}
HttpContext.Response.StatusCode = httpStatusCode;
@ -69,9 +69,9 @@ public class ErrorController : AbpController
});
}
private string GetErrorPageUrl(int statusCode)
protected virtual string GetErrorPageUrl(int statusCode)
{
var page = _abpErrorPageOptions.ErrorViewUrls.GetOrDefault(statusCode.ToString());
var page = AbpErrorPageOptions.ErrorViewUrls.GetOrDefault(statusCode.ToString());
if (string.IsNullOrWhiteSpace(page))
{

8
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController.cs

@ -8,16 +8,16 @@ namespace Volo.Abp.AspNetCore.Mvc.ApiExploring;
[Route("api/abp/api-definition")]
public class AbpApiDefinitionController : AbpController, IRemoteService
{
private readonly IApiDescriptionModelProvider _modelProvider;
protected readonly IApiDescriptionModelProvider ModelProvider;
public AbpApiDefinitionController(IApiDescriptionModelProvider modelProvider)
{
_modelProvider = modelProvider;
ModelProvider = modelProvider;
}
[HttpGet]
public ApplicationApiDescriptionModel Get(ApplicationApiDescriptionModelRequestDto model)
public virtual ApplicationApiDescriptionModel Get(ApplicationApiDescriptionModelRequestDto model)
{
return _modelProvider.CreateApiModel(model);
return ModelProvider.CreateApiModel(model);
}
}

12
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationController.cs

@ -9,22 +9,22 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[Route("api/abp/application-configuration")]
public class AbpApplicationConfigurationController : AbpControllerBase, IAbpApplicationConfigurationAppService
{
private readonly IAbpApplicationConfigurationAppService _applicationConfigurationAppService;
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly IAbpApplicationConfigurationAppService ApplicationConfigurationAppService;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpApplicationConfigurationController(
IAbpApplicationConfigurationAppService applicationConfigurationAppService,
IAbpAntiForgeryManager antiForgeryManager)
{
_applicationConfigurationAppService = applicationConfigurationAppService;
_antiForgeryManager = antiForgeryManager;
ApplicationConfigurationAppService = applicationConfigurationAppService;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
public virtual async Task<ApplicationConfigurationDto> GetAsync(
ApplicationConfigurationRequestOptions options)
{
_antiForgeryManager.SetCookie();
return await _applicationConfigurationAppService.GetAsync(options);
AntiForgeryManager.SetCookie();
return await ApplicationConfigurationAppService.GetAsync(options);
}
}

34
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationScriptController.cs

@ -17,11 +17,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpApplicationConfigurationScriptController : AbpController
{
private readonly AbpApplicationConfigurationAppService _configurationAppService;
private readonly IJsonSerializer _jsonSerializer;
private readonly AbpAspNetCoreMvcOptions _options;
private readonly IJavascriptMinifier _javascriptMinifier;
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly AbpApplicationConfigurationAppService ConfigurationAppService;
protected readonly IJsonSerializer JsonSerializer;
protected readonly AbpAspNetCoreMvcOptions Options;
protected readonly IJavascriptMinifier JavascriptMinifier;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpApplicationConfigurationScriptController(
AbpApplicationConfigurationAppService configurationAppService,
@ -30,42 +30,42 @@ public class AbpApplicationConfigurationScriptController : AbpController
IJavascriptMinifier javascriptMinifier,
IAbpAntiForgeryManager antiForgeryManager)
{
_configurationAppService = configurationAppService;
_jsonSerializer = jsonSerializer;
_options = options.Value;
_javascriptMinifier = javascriptMinifier;
_antiForgeryManager = antiForgeryManager;
ConfigurationAppService = configurationAppService;
JsonSerializer = jsonSerializer;
Options = options.Value;
JavascriptMinifier = javascriptMinifier;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public async Task<ActionResult> Get()
public virtual async Task<ActionResult> Get()
{
var script = CreateAbpExtendScript(
await _configurationAppService.GetAsync(
await ConfigurationAppService.GetAsync(
new ApplicationConfigurationRequestOptions {
IncludeLocalizationResources = false
}
)
);
_antiForgeryManager.SetCookie();
AntiForgeryManager.SetCookie();
return Content(
_options.MinifyGeneratedScript == true
? _javascriptMinifier.Minify(script)
Options.MinifyGeneratedScript == true
? JavascriptMinifier.Minify(script)
: script,
MimeTypes.Application.Javascript
);
}
private string CreateAbpExtendScript(ApplicationConfigurationDto config)
protected virtual string CreateAbpExtendScript(ApplicationConfigurationDto config)
{
var script = new StringBuilder();
script.AppendLine("(function(){");
script.AppendLine();
script.AppendLine($"$.extend(true, abp, {_jsonSerializer.Serialize(config, indented: true)})");
script.AppendLine($"$.extend(true, abp, {JsonSerializer.Serialize(config, indented: true)})");
script.AppendLine();
script.AppendLine("abp.event.trigger('abp.configurationInitialized');");
script.AppendLine();

6
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpApplicationLocalizationScriptController.cs

@ -39,7 +39,7 @@ public class AbpApplicationLocalizationScriptController : AbpController
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public async Task<ActionResult> GetAsync(ApplicationLocalizationRequestDto input)
public virtual async Task<ActionResult> GetAsync(ApplicationLocalizationRequestDto input)
{
var script = CreateScript(
await LocalizationAppService.GetAsync(input)
@ -53,7 +53,7 @@ public class AbpApplicationLocalizationScriptController : AbpController
);
}
private string CreateScript(ApplicationLocalizationDto localizationDto)
protected virtual string CreateScript(ApplicationLocalizationDto localizationDto)
{
var script = new StringBuilder();
@ -66,4 +66,4 @@ public class AbpApplicationLocalizationScriptController : AbpController
return script.ToString();
}
}
}

20
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxyScriptController.cs

@ -14,30 +14,30 @@ namespace Volo.Abp.AspNetCore.Mvc.ProxyScripting;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpServiceProxyScriptController : AbpController
{
private readonly IProxyScriptManager _proxyScriptManager;
private readonly AbpAspNetCoreMvcOptions _options;
private readonly IJavascriptMinifier _javascriptMinifier;
protected readonly IProxyScriptManager ProxyScriptManager;
protected readonly AbpAspNetCoreMvcOptions Options;
protected readonly IJavascriptMinifier JavascriptMinifier;
public AbpServiceProxyScriptController(IProxyScriptManager proxyScriptManager,
IOptions<AbpAspNetCoreMvcOptions> options,
IJavascriptMinifier javascriptMinifier)
{
_proxyScriptManager = proxyScriptManager;
_options = options.Value;
_javascriptMinifier = javascriptMinifier;
ProxyScriptManager = proxyScriptManager;
Options = options.Value;
JavascriptMinifier = javascriptMinifier;
}
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public ActionResult GetAll(ServiceProxyGenerationModel model)
public virtual ActionResult GetAll(ServiceProxyGenerationModel model)
{
model.Normalize();
var script = _proxyScriptManager.GetScript(model.CreateOptions());
var script = ProxyScriptManager.GetScript(model.CreateOptions());
return Content(
_options.MinifyGeneratedScript == true
? _javascriptMinifier.Minify(script)
Options.MinifyGeneratedScript == true
? JavascriptMinifier.Minify(script)
: script,
MimeTypes.Application.Javascript
);

8
framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleController.cs

@ -12,16 +12,16 @@ namespace Volo.Abp.Swashbuckle;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpSwashbuckleController : AbpController
{
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpSwashbuckleController(IAbpAntiForgeryManager antiForgeryManager)
{
_antiForgeryManager = antiForgeryManager;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
public void SetCsrfCookie()
public virtual void SetCsrfCookie()
{
_antiForgeryManager.SetCookie();
AntiForgeryManager.SetCookie();
}
}

Loading…
Cancel
Save