public ActionResult Authenticate(SimpleLoginDto login) { try { var tipoCuenta = _tipoCuentaService.GetByCriteria(TipoCuentaCriteria.Create().EqualNombre(login.TipoCuenta)); var user = _service.GetByCriteria(UsuarioCriteria.Create().ByTelefono(login.Telefono)); var cuentas = _cuentaService.GetCollectionByCriteria(CuentaUsuarioCriteria.Create().ByIdUsuario(user.Id.Value)); if (!cuentas.Any(item => item.IdTipoCuenta == tipoCuenta.Id && item.Password == StringHelper.GetSHA1(login.Password))) { return(Unauthorized()); } var token = JWTTokenGenerator.GenerateToken(login.Telefono); if (string.IsNullOrWhiteSpace(token)) { var error = new ValidationProblemDetails { Title = "Error de autenticación", Detail = "No se ha podido generar el token de autorización." }; return(ValidationProblem(error)); } return(Ok(new { token })); }catch { return(NoContent()); } }
public IActionResult GetByTelefono(string numero) { try { var usuario = _usuarioService.GetByCriteria(UsuarioCriteria.Create().ByTelefono(numero)); if (usuario == null) { return(NoContent()); } var cuentas = _cuentaUsuarioService.GetCollectionByCriteria(CuentaUsuarioCriteria.Create().ByIdUsuario(usuario.Id.Value)); if (cuentas == null) { return(NoContent()); } var tiposCuenta = _tipoCuentaService.GetAll(); var tipoConductor = tiposCuenta.FirstOrDefault(tc => tc.Nombre.Equals("conductor", StringComparison.InvariantCultureIgnoreCase)); if (tipoConductor == null) { return(NoContent()); } var cuenta = cuentas.FirstOrDefault(c => c.IdTipoCuenta == tipoConductor.Id); if (cuenta == null) { return(NoContent()); } return(Ok(new { cuenta.Id })); } catch (Exception ex) { return(BadRequest(ex.Message)); } }