public IActionResult Crear(Cuenta cuenta)
        {
            UtilidadContrasena utilidadContrasena = new UtilidadContrasena();
            var salt           = BitConverter.ToString(utilidadContrasena.GetSalt());
            var contrasenaHash = utilidadContrasena.Hash(cuenta.Contrasena, salt);

            cuenta.Salt       = salt;
            cuenta.Contrasena = contrasenaHash;
            _contexto.Cuentas.Add(cuenta);
            _contexto.SaveChanges();
            return(CreatedAtAction(nameof(ObtenerPorId), new { cuenta.Id }, cuenta));
        }
        public IActionResult Modificar(int id, Cuenta cuenta)
        {
            var cuentaExistente = _contexto.Cuentas.FirstOrDefault(cuentaBD => cuentaBD.Id == id);

            if (cuentaExistente == null)
            {
                return(NotFound());
            }
            cuentaExistente.Nombre  = cuenta.Nombre;
            cuentaExistente.Usuario = cuenta.Usuario;
            cuentaExistente.Acceso  = cuenta.Acceso;
            UtilidadContrasena utilidadContrasena = new UtilidadContrasena();
            var salt           = cuentaExistente.Salt;
            var contrasenaHash = utilidadContrasena.Hash(cuenta.Contrasena, salt);

            cuentaExistente.Contrasena = contrasenaHash;
            _contexto.SaveChanges();
            return(CreatedAtAction(nameof(ObtenerPorId), new { cuentaExistente.Id }, cuentaExistente));
        }
        public IActionResult IniciarSesion(Cuenta cuenta)
        {
            var cuentaExistente = _contexto.Cuentas.FirstOrDefault(cuentaBD => cuentaBD.Usuario == cuenta.Usuario);

            if (cuentaExistente == null)
            {
                return(NotFound());
            }
            if (cuentaExistente.Acceso == false)
            {
                return(BadRequest());
            }
            UtilidadContrasena utilidadContrasena = new UtilidadContrasena();
            var salt           = cuentaExistente.Salt;
            var contrasenaHash = utilidadContrasena.Hash(cuenta.Contrasena, salt);

            if (cuentaExistente.Contrasena != contrasenaHash)
            {
                return(BadRequest());
            }
            return(Content("sesión iniciada"));
        }
        public IActionResult ModificarCont(int id, Cuenta cuenta)
        {
            if (cuenta == null)
            {
                return(BadRequest());
            }
            var cuentaExistente = _contexto.Cuentas.Find(id);

            if (cuentaExistente == null)
            {
                return(NotFound());
            }
            cuentaExistente.Id = id;
            UtilidadContrasena utilidadContrasena = new UtilidadContrasena();
            var salt           = cuentaExistente.Salt;
            var contrasenaHash = utilidadContrasena.Hash(cuenta.Contrasena, salt);

            cuentaExistente.Contrasena = contrasenaHash;
            _contexto.Cuentas.Update(cuentaExistente);
            _contexto.SaveChanges();
            return(CreatedAtAction(nameof(ObtenerPorId), new { cuentaExistente.Id }, cuentaExistente));
        }