public async Task <IActionResult> Authenticate(AuthenticateViewModel model) { try { log.WriteLog("Login", MethodBase.GetCurrentMethod().Name, model); int badStatusCode = (int)HttpStatusCode.BadRequest; var loginInfo = await loginWorker.GetLoginInfo(model.UserName); if (loginInfo != null) { if (loginInfo.Attemps >= 3) { return(BadRequest(new { code = badStatusCode, message = "Has intentado ingresar más de 3 veces, por favor intenta más tarde o comunicate con algún administrador" })); } if ((bool)loginInfo.Blocked) { return(BadRequest(new { code = badStatusCode, message = "Tu usuario se encuentra bloqueado, por favor comunicate con algún administrador" })); } } var user = await loginWorker.Auhenticate(model.UserName, model.Password); if (user == null) { await loginWorker.CreateorUpdateLoginInfo(model.UserName, false); return(BadRequest(new { code = badStatusCode, message = "Tu usuario o contraseña no son conrrectos, por favor intentalo de nuevo" })); } await loginWorker.CreateorUpdateLoginInfo(user.UserName, true); user.Password = string.Empty; return(Ok(user)); } catch (Exception ex) { int statusCode = (int)HttpStatusCode.InternalServerError; return(StatusCode(statusCode, new { code = statusCode, message = ex.Message })); } }