public IHttpActionResult PostRol(Rol rol)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            //creo una lista de permisos
            List<Permiso> aux = new List<Permiso>();
            //recorrro la lista de permisos en el objeto rol
            foreach (Permiso temp in rol.permisos){
                //agreglo los permmisos a la lista que cree antes
                aux.Add(db.Permisos.Find(temp.PermisoID));
            }
            //igualo los permisos del a la list que cree con el fin de que no me duplique permisos

            rol.permisos = aux;
            db.Roles.Add(rol);
            db.SaveChanges();

            return CreatedAtRoute("DefaultApi", new { id = rol.RolId }, rol);
        }
        public IHttpActionResult PutRol(int id, Rol rol)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != rol.RolId)
            {
                return BadRequest();
            }

            //busco el rol que existe en la base de datos
            var objRol = db.Roles.Find(id);

            //seteo los datos del rol en la bd por los que recibo por parametro
            db.Entry(objRol).CurrentValues.SetValues(rol);
            //creo una lista de permiso y la igualo a los permisos que tiene el objeto
            //rol
            List<Permiso> aux = objRol.permisos.ToList();
            //recorro la lista de permisos que tiene el rol
            foreach (var dbPermisos in aux)
                //pregunto si los permisos de rol que recibo son menos que los que existen
                if (!rol.permisos.Any(p => p.PermisoID == dbPermisos.PermisoID))
                    //entonces elimino del rol los que no esten en la nueva lista
                    objRol.permisos.Remove(dbPermisos);

            //recorro la nueva lista que recibo por parametro
            foreach (var newPermisos in rol.permisos)
            {
                //igualo la variable temp al permiso
                var temp = objRol.permisos.SingleOrDefault(s => s.PermisoID == newPermisos.PermisoID);
                //si tem es nullo entonces agregro el permiso
                if (temp == null)
                objRol.permisos.Add(db.Permisos.Find(newPermisos.PermisoID));

            }

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RolExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }