using CuentasCobrar.CORE.Exceptions; using CuentasCobrar.UI.Helpers; using CuentasCobrar.UI.Services.Interfaces; using Microsoft.AspNetCore.Mvc; using static CuentasCobrar.UI.Helpers.Enum; namespace CuentasCobrar.UI.Controllers { public class HomeController : BaseController { private readonly IUsuarioAPI _usuarioAPI; public HomeController ( IUsuarioAPI usuarioAPI ) { _usuarioAPI = usuarioAPI; } public async Task Index () { try { if (Request.Cookies["CookieToken"] == null) { string tokenUsuario = await CrearToken ( _usuarioAPI ); CrearCookies ( tokenUsuario ); } } catch (Exception ex) { if (ex.GetType () == typeof ( BadRequestException )) { BadRequestException excepcion = ex as BadRequestException; CustomNotification ( $"Error {excepcion.number}: {excepcion.Message}", TipoNotificacion.error, NotificationPosition.Center, "Usuario" ); return RedirectToAction ( "Error", new { numeroError = excepcion.number, descripcionError = excepcion.Message } ); } else { return RedirectToAction ( "Error", new { numeroError = 500, descripcionError = "Se produjo un error!" } ); } } return View (); } public IActionResult Privacy () { return View (); } [ResponseCache ( Duration = 0, Location = ResponseCacheLocation.None, NoStore = true )] public IActionResult Error ( int? numeroError, string descripcionError ) { ViewBag.NumeroError = numeroError == null ? 503 : numeroError; ViewBag.descripcionError = descripcionError == null ? "Ha ocurrido un problema al comunicarse con el servidor" : descripcionError; return View (); } } }