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 PutUsuario(int id, Usuario usuario) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != usuario.UsuarioId) { return BadRequest(); } //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; //busco en la base de datos el usuario que esta en ese momento con el id recibido //no el que recibo por parametro var objUsuario = db.Usuarios.Find(id); //seteo los valores de los atributos del usuario en la base de datos al nuevo que recibo por parametro objUsuario.nombre = usuario.nombre; objUsuario.primerApellido = usuario.primerApellido; objUsuario.segundoApellido = usuario.segundoApellido; objUsuario.correoElectronico = usuario.correoElectronico; objUsuario.cedula = usuario.cedula; objUsuario.RolId = temp; objUsuario.telefono = usuario.telefono; //modifico el usuario db.Entry(objUsuario).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!UsuarioExists(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); }