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