btcpayserver/BTCPayServer/Controllers/ErrorController.cs
2022-01-07 19:46:38 +09:00

33 lines
1,019 B
C#

using System;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
namespace BTCPayServer.Controllers
{
[Route("[controller]/[action]")]
public class ErrorController : Controller
{
public IActionResult Handle(int? statusCode = null)
{
if (Request.Headers.TryGetValue("Accept", out var v) && v.Any(v => v.Contains("text/html", StringComparison.OrdinalIgnoreCase)))
{
if (statusCode.HasValue)
{
var specialPages = new[] { 404, 406, 417, 429, 500, 502, 403 };
if (specialPages.Any(a => a == statusCode.Value))
{
var viewName = statusCode.ToString();
return View(viewName);
}
}
return View(statusCode);
}
return this.StatusCode(statusCode.Value);
}
public IActionResult Denied()
{
return Handle(403);
}
}
}