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);
        }