public IHttpActionResult PostContrasena(Contrasena contrasena) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Contrasenas.Add(contrasena); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = contrasena.ContrasenaId }, contrasena); }
public IHttpActionResult PostUsuario(Usuario usuario) { if (!ModelState.IsValid) { return BadRequest(ModelState); } //creo una variable temporal donde consulto a la tabla roles por el rol que tiene el usuario Rol temp = db.Roles.Find(usuario.RolId.RolId); //igualo el rol del usuario al rol que recibo nuevo usuario.RolId = temp; //creo e instancion una lista de contrasenas List<Contrasena> aux = new List<Contrasena>(); //creo e instrancio un objeto contrasena Contrasena objContrasena = new Contrasena(); //igualo el campo de contrasena en el obj contrasena al la del usuario de contrasena objContrasena.password = usuario.contrasena; //agrego el objContrasena a la lista de contrasenas que cree aux.Add(objContrasena); //igualo la lista de contrasenas del usuario a la lista que cree e instancie en un inico usuario.ContrasenaId = aux; //agrego el usuario db.Usuarios.Add(usuario); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = usuario.UsuarioId }, usuario); }
public IHttpActionResult PutContrasena(int id, Contrasena contrasena) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != contrasena.ContrasenaId) { return BadRequest(); } db.Entry(contrasena).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ContrasenaExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public IHttpActionResult modificarContrasena(int id, Usuario usuario) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != usuario.UsuarioId) { return BadRequest(); } //obtengo el usuario viejo de la base de datos //el nuevo es el que recibo por parametro var objUsuario = db.Usuarios.Find(id); //recorro la lista de objetos contrasea para validar que el usuario no ingrese una ya existente foreach (Contrasena pass in objUsuario.ContrasenaId) { //valido que la contrasena en la posicion especifica no se igual a la que recibo del objeto usuario nuevo if(pass.password == usuario.contrasena) { //lanzo la exepcion de que la contrasena ya existe new Exception("La contrasena " + usuario.contrasena + " ya fue usada por favor utilizar una nueva"); //retorno un bad request return BadRequest(); } } //creo una instancia de contrasena Contrasena objPass = new Contrasena(); //pregunto si la lista de contrasenas en el objUsuario es mayor a 8 // para remover la mas vieja if (objUsuario.ContrasenaId.Count >= 8) { //remuevo la contrasena mas vieja para manejar el historial de 8 contrasenas db.Contrasenas.Remove(objUsuario.ContrasenaId.First()); } //igualo la contrasena del usuario en la base de datos a la que recibo por parametro objUsuario.contrasena = usuario.contrasena; //igualo la contrasena del historial a la que tiene el objUsuario objPass.password = objUsuario.contrasena; //agrego a la lista del objeto usuario la contrasena objUsuario.ContrasenaId.Add(objPass); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!UsuarioExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }