Пример #1
0
        public async Task <ActionResult> AsignarAccesos(string id)
        {
            if (id == "")
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var role = await RoleManager.FindByIdAsync(id);

            web.ViewModels.PermisosVM model = new web.ViewModels.PermisosVM();
            model.RolV = role;

            //Obtengo listado de accesos
            var lista = (from a in db.Accesos
                         select new web.ViewModels.PermisosVM.AccesosVMList()
            {
                id_acceso = a.id_acceso,
                Nombre = a.Nombre,
                Selected = false
            }).ToList();

            //Obtengo listado de accesos asignados al rol
            var lista2 = (from a in db.Accesos
                          join p in db.Permisos on a.id_acceso equals p.id_acceso
                          where p.Id == id
                          select new web.ViewModels.PermisosVM.AccesosVMList()
            {
                id_acceso = a.id_acceso,
                Nombre = a.Nombre,
                Selected = true
            }).ToList();


            var objetosAComparar = from item in lista2
                                   select item.id_acceso;

            foreach (var item in lista)
            {
                if (objetosAComparar.Contains(item.id_acceso))
                {
                    item.Selected = true;
                }
            }

            model.AccesosDisp   = lista.OrderByDescending(o => o.Selected).ToList();
            model.AccesosSelect = lista2;

            return(View(model));
        }
Пример #2
0
        public ActionResult AsignarAccesos(web.ViewModels.PermisosVM permisos)
        {
            var Rol      = permisos.RolV;
            var Permisos = permisos;
            var lista1   = permisos.AccesosDisp.ToList();

            int i = 0;

            foreach (var row in lista1)
            {
                if (row.Selected == true)
                {
                    permisos.AccesosSelect.Add(permisos.AccesosDisp[i]);
                }
                i++;
            }

            //Elimino de la tabla permisos
            var toDelete = db.Permisos.Where(a => a.Id == Rol.Id).ToList();

            foreach (var item in toDelete)
            {
                db.Permisos.Remove(item);
            }
            db.SaveChanges();

            //inserto los accesos seleccionados en la tabla permisos
            foreach (var pa in permisos.AccesosSelect)
            {
                Permisos per = new Permisos();
                per.id_acceso = pa.id_acceso;
                per.Id        = Rol.Id;
                db.Permisos.Add(per);
                db.SaveChanges();
                i++;
            }

            return(RedirectToAction("Index"));
        }