public IHttpActionResult Postrol(rol rol) { if (!ModelState.IsValid) { return BadRequest(ModelState); } for (int i = 0; i < rol.permisos.Count; i++) { permiso permiso = rol.permisos.ElementAt(i); rol.permisos.Remove(permiso); rol.permisos.Add(db.permisos.Find(permiso.id_permiso)); } db.rols.Add(rol); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = rol.id_rol }, rol); }
/// <summary> /// autor: Alejandro Bermudez Vargas /// fecha: 1/11/2015 /// </summary> // PUT api/Rols/5 public IHttpActionResult Putrol(int id, rol rol) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != rol.id_rol) { return BadRequest(); } rol databaseRol = db.rols.Find(rol.id_rol); db.Entry(databaseRol).Collection(p => p.permisos).Load(); int count = databaseRol.permisos.Count;//Porque sino va disminuyendose y se sale a la mitad for (int i = 0; i < count; i++) { databaseRol.permisos.Remove(databaseRol.permisos.ElementAt(0)); } count = rol.permisos.Count; for (int i = 0; i < count; i++) { databaseRol.permisos.Add(db.permisos.Find(rol.permisos.ElementAt(i).id_permiso)); } databaseRol.activo = rol.activo; databaseRol.nombre = rol.nombre; db.Entry(databaseRol).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!rolExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }