예제 #1
0
        public bool EditarRol(int ClienteId, ReportingRoles Rol, List <int> Permisos)
        {
            try
            {
                ReportingRoles rol = context.ReportingRoles.FirstOrDefault(r => r.idCliente == ClienteId && r.id == Rol.id);
                if (rol == null)
                {
                    return(false);
                }

                context.ReportingRolPermisos.RemoveRange(rol.ReportingRolPermisos);

                foreach (var p in Permisos)
                {
                    rol.ReportingRolPermisos.Add(new ReportingRolPermisos()
                    {
                        idPermiso = p,
                        idRol     = rol.id
                    });
                }

                context.Entry(rol).State = EntityState.Modified;
                context.SaveChanges();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #2
0
        public ActionResult EditarRol(ConfRolVM model)
        {
            try
            {
                int ClienteId = GetClienteSeleccionado();

                if (ModelState.IsValid)
                {
                    ReportingRoles rol = usuarioRepository.GetRolById(model.Id, ClienteId);

                    if (rol == null)
                    {
                        return(View("RolNoEncontrado"));
                    }

                    rol.nombre = model.Nombre;

                    List <int> permisos = model.Permisos.Where(p => p.Seleccionado).Select(p => p.Id).ToList();

                    if (usuarioRepository.EditarRol(ClienteId, rol, permisos))
                    {
                        ViewBag.Success = true;
                        return(View(model));
                    }

                    ViewBag.Error        = true;
                    ViewBag.ErrorMessage = Resources.Configuracion.reviseSiDatosSonCorrectos;
                    return(View(model));
                }
                else
                {
                    ViewBag.Error        = true;
                    ViewBag.ErrorMessage = Resources.Configuracion.reviseSiDatosSonCorrectos;
                    return(View(model));
                }
            }
            catch
            {
                return(View("Error"));
            }
        }
예제 #3
0
        public ActionResult EditarRol(int?Id)
        {
            if (Id == null)
            {
                return(View("RolNoEncontrado"));
            }

            int ClienteId = GetClienteSeleccionado();

            ReportingRoles rol = usuarioRepository.GetRolById((int)Id, ClienteId);

            if (rol == null)
            {
                return(View("RolNoEncontrado"));
            }

            ConfRolVM model = new ConfRolVM()
            {
                Id     = rol.id,
                Nombre = rol.nombre
            };

            List <ReportingPermisos> permisos = usuarioRepository.GetPermisos();

            model.Permisos = permisos.Select(p => new ConfPermisoVM {
                Id = p.id, Nombre = p.permiso, Seleccionado = false
            }).ToList();

            foreach (var per in rol.ReportingRolPermisos)
            {
                if (model.Permisos.Any(p => p.Id == per.idPermiso))
                {
                    model.Permisos.First(p => p.Id == per.idPermiso).Seleccionado = true;
                }
            }

            return(View(model));
        }