protected List <Usuario> GetUsuariosPermitidosByRolEmpresa() { UsuarioRepository usuarioRepository = new UsuarioRepository(); UsuarioRolClienteRepository usuarioRolClienteRepository = new UsuarioRolClienteRepository(); List <Usuario> listUsuarios = new List <Usuario>(); List <string> allEmails = new List <string>(); try { //if (IsAdmin) // return usuarioRepository.GetFiltered(s => s.Estado == true).ToList(); var thisUser = usuarioRepository.Get(User.UserID).FirstOrDefault(); listUsuarios.Add(thisUser); //foreach(var rol in UserContext.RolesCliente) //{ // var listUsers = usuarioRolClienteRepository.GetFiltered(s => s.Cliente_Id == rol.Cliente_Id, i => i.UsuarioRol, m => m.UsuarioRol.Usuario) // .Select(u => u.UsuarioRol.Usuario).Where(e => e.Estado == true); // foreach (var user in listUsers) // { // if (!listUsuarios.Exists(s=> s.Id == user.Id)) // listUsuarios.Add(user); // } //} var listUsers2 = usuarioRepository.GetFiltered(u => u.Estado == true, i => i.RolesEmpresa) .Select(u => u).Where(u => u.RolesEmpresa.Any(r => r.Rol_Id != 25)).ToList(); foreach (var user in listUsers2) { if (!listUsuarios.Exists(s => s.Id == user.Id)) { listUsuarios.Add(user); } } } catch (Exception ex) { throw new Exception("Error al buscar usuario segun el perfil: " + ex.Message); } return(listUsuarios); }