예제 #1
0
        public ActionResult EditarRoles(List <ViewMuestra> listaVMU)
        {
            try{
                List <UsuariosSectores> usec      = new List <UsuariosSectores>();
                UsSecRepository         UsSecRepo = new UsSecRepository();
                foreach (ViewMuestra item in listaVMU)
                {
                    UsuariosSectores usuariosector = new UsuariosSectores(UsSecRepo.BuscarUsuarioSector(item.id), item.nombreRoles);
                    UsSecRepo.ModificarRolesUsuarioSector(item.id, usuariosector.roles);
                }

                return(RedirectToAction("ObtenerUsuariosSectores"));
            }
            catch (Exception)
            {
                return(RedirectToAction("ObtenerUsuariosSectores"));
            }
        }
예제 #2
0
        public void ModificarDatosRolSegunChequeos(List <ViewModel> lista_VMUsSec, string rolElegido)
        {
            UsSecRepository UsSecRepo          = new UsSecRepository();
            List <string>   roles              = new List <string>();
            List <string>   rolesOrdenados     = new List <string>();
            List <Roles>    listaRoles         = UsSecRepo.ListarTodosRoles();
            List <Roles>    listaRolesAObtener = new List <Roles>();

            try
            {
                foreach (ViewModel item in lista_VMUsSec)
                {
                    roles.Clear();
                    if (item.roles == null)
                    {
                        roles.Add(item.roles);
                    }
                    else
                    {
                        roles = item.roles.Split(',').ToList();
                    }
                    //Ver si está en vacío la lista

                    int  contador   = 0;
                    bool encontrado = false;
                    //Verifico que esté chequeado el rol en el ViewModel paracomprobar si fue modificado o no.
                    if (item.Chked)
                    {
                        if (roles.Count() == 1 && roles.First() == null)
                        {
                            string rolesArreglado = rolElegido;
                            UsSecRepo.ModificarRolesUsuarioSector(item.Id, rolesArreglado);
                        }
                        else
                        {
                            foreach (string rol in roles)
                            {
                                if (!(rolElegido.Equals(rol)) && (encontrado == false))
                                {
                                    contador++;

                                    if (contador == roles.Count())
                                    {
                                        //Se Añade el Rol elegido a la lista.
                                        listaRolesAObtener.Add(listaRoles.Find(x => x.rol == rolElegido));
                                        //Se Cargan los otros Roles que poseía el UsuarioSector en el string.
                                        foreach (string rol2 in roles)
                                        {
                                            Roles rolClaseTemp = listaRoles.Find(x => x.rol == rol2);
                                            listaRolesAObtener.Add(rolClaseTemp);
                                        }


                                        listaRolesAObtener = listaRolesAObtener.OrderBy(x => x.id).ToList();
                                        foreach (Roles rolNombre in listaRolesAObtener)
                                        {
                                            rolesOrdenados.Add(rolNombre.rol);
                                        }
                                        string rolesArreglado = string.Join(",", rolesOrdenados.ToArray());
                                        UsSecRepo.ModificarRolesUsuarioSector(item.Id, rolesArreglado);
                                        listaRolesAObtener.Clear();
                                        rolesOrdenados.Clear();
                                    }
                                }
                                else
                                {
                                    encontrado = true;
                                }
                            }
                        }
                    }
                    //Verifico que esté chequeado el rol en el ViewModel paracomprobar si fue modificado o no.
                    else
                    {
                        foreach (string rol in roles)
                        {
                            if ((rolElegido.Equals(rol)))
                            {
                                foreach (string rol2 in roles)
                                {
                                    Roles rolClase = listaRoles.Find(x => x.rol == rol2);
                                    listaRolesAObtener.Add(rolClase);
                                }
                                listaRolesAObtener.Remove(listaRoles.Find(x => x.rol == rolElegido));
                                listaRolesAObtener = listaRolesAObtener.OrderBy(x => x.id).ToList();
                                foreach (Roles rolNombre in listaRolesAObtener)
                                {
                                    rolesOrdenados.Add(rolNombre.rol);
                                }
                                string rolesArreglado = string.Join(",", rolesOrdenados.ToArray());
                                if (rolesArreglado == "")
                                {
                                    rolesArreglado = null;
                                }
                                UsSecRepo.ModificarRolesUsuarioSector(item.Id, rolesArreglado);
                                listaRolesAObtener.Clear();
                                rolesOrdenados.Clear();
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }