public IPatente ObtenerPatentePorPatente(long ramaId) { PatenteRama rama = autorizacionRamaBll.BuscarPorId(ramaId); ArmarHijos(rama, rama.Id); return(rama); }
private void ArmarHijos(IPatente patente, long patenteId) { IList <Patente> patentes = autorizacionDal.BuscarTodos(new Dictionary <String, object> { { "fk_patente", patenteId } } ); foreach (Patente p in patentes) { if (p.Tipo == "rama") { PatenteRama pr = new PatenteRama { Id = p.Id, Codigo = p.Codigo, }; ArmarHijos(pr, pr.Id); patente.agregarHijo(pr); } else { patente.agregarHijo(p); } } }
/** * * Al usar este metodo se traen todos los permisos anidados del usuario. * -Si el usuario tiene un permiso hijo, pero no a su padre el mismo no se podra acceder. * Esto es asi porque si no tiene el permiso padre, no busca las patentes que este contiene. * * */ public IPatente ObtenerPatentePorUsuario(Usuario usuario) { IList <PatenteRama> ramas = BuscarPatentesRama(usuario); foreach (var rama in ramas) { ArmarHijos(rama, rama.Id, usuario); } PatenteRama patenteReturn = new PatenteRama(); patenteReturn.Codigo = "RAIZ"; foreach (var r in ramas) { patenteReturn.agregarHijo(r); } return(patenteReturn); }