public BE.Empleado EliminarEmpleado(BE.Empleado empleado) { var listaEmpleados = ListarEmpleados(); var listaPermisos = _permisoBll.GetAllPatentes(); HashSet <BE.Permiso> permisosUtilizados = new HashSet <BE.Permiso>(); foreach (BE.Permiso p in listaPermisos) { foreach (BE.Empleado emp in listaEmpleados) { if (empleado.legajo != emp.legajo && emp.estado != 0) { foreach (BE.Permiso pemp in emp.usuario.Permisos) { if (pemp.Hijos.Count == 0) { if (p.id == pemp.id) { permisosUtilizados.Add(p); } } else { foreach (BE.Permiso phijo in pemp.Hijos) { if (p.id == phijo.id) { permisosUtilizados.Add(p); } } } } } } } if (listaPermisos.Count() == permisosUtilizados.Count()) { empleado.estado = 0; _usuarioBLL.EliminarUsuario(empleado.usuario); ActualizarEmpleado(empleado); return(empleado); } else { throw new Exception("No puede dar de baja el usuario, quedarian permisos sin asignar"); } }
public bool VerificarPermisos(BE.Usuario usuario) { IList <BE.Patente> listaPatentes = _permisoBll.GetAllPatentes(); var listaModificada = new List <BE.Patente>(); foreach (var permiso in usuario.Permisos) { foreach (var item in listaPatentes) { if (permiso.Hijos.Count <= 0) { if (item.id == permiso.id) { if (listaModificada.Find(r => r.id == item.id) == null) { listaModificada.Add(item); } } } else { foreach (var pat in permiso.Hijos) { if (item.id == pat.id) { if (listaModificada.Find(r => r.id == item.id) == null) { listaModificada.Add(item); } } } } } } if (listaPatentes.Count() == listaModificada.Count()) { // Es administrador return(true); } else { // No es admin return(false); } }