TFS_ANTIGUO/TPAtesa_CuentasCobrar/CuentasCobrar.UI/Controllers/HomeController.cs

59 lines
No EOL
2 KiB
C#

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<IActionResult> 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 ();
}
}
}