2020-06-28 21:44:35 -05:00
|
|
|
using System;
|
2020-02-01 01:40:50 -06:00
|
|
|
using System.Linq;
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
|
|
namespace BTCPayServer.Controllers
|
|
|
|
{
|
|
|
|
[Route("[controller]/[action]")]
|
|
|
|
public class ErrorController : Controller
|
|
|
|
{
|
|
|
|
public IActionResult Handle(int? statusCode = null)
|
|
|
|
{
|
2020-05-02 00:50:04 +09:00
|
|
|
if (Request.Headers.TryGetValue("Accept", out var v) && v.Any(v => v.Contains("text/html", StringComparison.OrdinalIgnoreCase)))
|
2020-02-01 01:41:27 -06:00
|
|
|
{
|
2020-05-02 00:50:04 +09:00
|
|
|
if (statusCode.HasValue)
|
2020-02-01 01:41:27 -06:00
|
|
|
{
|
2020-05-02 00:50:04 +09:00
|
|
|
var specialPages = new[] { 404, 429, 500 };
|
|
|
|
if (specialPages.Any(a => a == statusCode.Value))
|
|
|
|
{
|
|
|
|
var viewName = statusCode.ToString();
|
|
|
|
return View(viewName);
|
|
|
|
}
|
2020-02-01 01:41:27 -06:00
|
|
|
}
|
2020-05-02 00:50:04 +09:00
|
|
|
return View(statusCode);
|
2020-02-01 01:41:27 -06:00
|
|
|
}
|
2020-05-02 00:50:04 +09:00
|
|
|
return this.StatusCode(statusCode.Value);
|
2020-02-01 01:40:50 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|