diff --git a/Controllers/HomeController.cs b/Controllers/HomeController.cs index 31de6eb..53d5802 100644 --- a/Controllers/HomeController.cs +++ b/Controllers/HomeController.cs @@ -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); + //} } \ No newline at end of file diff --git a/Models/ErrorViewModel.cs b/Models/ErrorViewModel.cs new file mode 100644 index 0000000..b9315f7 --- /dev/null +++ b/Models/ErrorViewModel.cs @@ -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; } + } +} + diff --git a/QRRapidoApp.csproj b/QRRapidoApp.csproj index b378955..2205c69 100644 --- a/QRRapidoApp.csproj +++ b/QRRapidoApp.csproj @@ -37,7 +37,6 @@ - diff --git a/Views/Shared/Error.cshtml b/Views/Shared/Error.cshtml new file mode 100644 index 0000000..c746b63 --- /dev/null +++ b/Views/Shared/Error.cshtml @@ -0,0 +1,43 @@ +@using QRRapidoApp.Models +@model ErrorViewModel +@{ + ViewData["Title"] = "Erro"; + Layout = "~/Views/Shared/_Layout.cshtml"; +} + +
+
+
+
+

Erro

+

Ocorreu um erro durante o processamento da sua solicitação.

+ + @if (Model?.ShowRequestId == true) + { +

+ Request ID: @Model.RequestId +

+ } + + @if (!string.IsNullOrEmpty(ViewBag.ErrorCode)) + { +

+ Código do erro: @ViewBag.ErrorCode +

+ } + + @if (!string.IsNullOrEmpty(ViewBag.ErrorMessage)) + { +

+ Mensagem: @ViewBag.ErrorMessage +

+ } +
+ + +
+
+