feat: error page
This commit is contained in:
parent
e8fad24cc8
commit
fc02c22f40
@ -151,10 +151,31 @@ namespace QRRapidoApp.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
//[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
//public IActionResult Error()
|
||||
//{
|
||||
// return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
//}
|
||||
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
var errorCode = Request.Query["code"].ToString();
|
||||
var errorMessage = "";
|
||||
|
||||
// Interpretar códigos de erro específicos
|
||||
if (errorCode.StartsWith("M.C506"))
|
||||
{
|
||||
errorMessage = "Erro de autenticação. Verifique suas credenciais e tente novamente.";
|
||||
}
|
||||
|
||||
ViewBag.ErrorCode = errorCode;
|
||||
ViewBag.ErrorMessage = errorMessage;
|
||||
|
||||
return View(new ErrorViewModel
|
||||
{
|
||||
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier
|
||||
});
|
||||
}
|
||||
|
||||
// Dynamic QR redirect endpoint
|
||||
@ -277,9 +298,9 @@ namespace QRRapidoApp.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
public class ErrorViewModel
|
||||
{
|
||||
public string? RequestId { get; set; }
|
||||
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||
}
|
||||
//public class ErrorViewModel
|
||||
//{
|
||||
// public string? RequestId { get; set; }
|
||||
// public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||
//}
|
||||
}
|
||||
11
Models/ErrorViewModel.cs
Normal file
11
Models/ErrorViewModel.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace QRRapidoApp.Models
|
||||
{
|
||||
public class ErrorViewModel
|
||||
{
|
||||
public string? RequestId { get; set; }
|
||||
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||
public string? ErrorCode { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,7 +37,6 @@
|
||||
<Folder Include="wwwroot\css\" />
|
||||
<Folder Include="Data\" />
|
||||
<Folder Include="Services\" />
|
||||
<Folder Include="Models\" />
|
||||
<Folder Include="Middleware\" />
|
||||
<Folder Include="Tests\" />
|
||||
</ItemGroup>
|
||||
|
||||
43
Views/Shared/Error.cshtml
Normal file
43
Views/Shared/Error.cshtml
Normal file
@ -0,0 +1,43 @@
|
||||
@using QRRapidoApp.Models
|
||||
@model ErrorViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Erro";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container mt-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="alert alert-danger">
|
||||
<h1 class="display-4">Erro</h1>
|
||||
<p>Ocorreu um erro durante o processamento da sua solicitação.</p>
|
||||
|
||||
@if (Model?.ShowRequestId == true)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewBag.ErrorCode))
|
||||
{
|
||||
<p>
|
||||
<strong>Código do erro:</strong> <code>@ViewBag.ErrorCode</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewBag.ErrorMessage))
|
||||
{
|
||||
<p>
|
||||
<strong>Mensagem:</strong> @ViewBag.ErrorMessage
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<a href="/pt-BR" class="btn btn-primary">Voltar ao Início</a>
|
||||
<a href="/pt-BR/Account/Login" class="btn btn-secondary">Tentar Login Novamente</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user