private static void InterditsVersBas(int id, List <Personne> interdits) { IEnumerable <Personne> enfants = new PersonneRepository().DonnerEnfants(id); foreach (Personne pe in enfants) { AjIlistUnique(interdits, pe); InterditsVersBas(pe.id, interdits); } }
public IEnumerable <Personne> DonnerParenteesDirectesPossibles(int id) { int idArbre = new PersonneRepository().Donner(id).idarbre; List <Personne> interdictions = new List <Personne>(); InterditsVersHaut(id, interdictions); InterditsVersBas(id, interdictions); return(new PersonneRepository() .DonnerPourArbre(idArbre) .Where(k => !(interdictions.Select(j => j.id).Contains(k.id))) //?? new List<Personne>(); ); }
public IEnumerable <Descendant> DonnerLesEnfants(int id) { string sqlRequete = $"{CONST_PERSONNE_REQ}"; Personne p = new PersonneRepository().Donner(id); string s = p.homme == 1 ? "idpere" : "idmere"; sqlRequete += $" where {s} = @id"; Commande com = new Commande(sqlRequete); com.AjouterParametre("id", id); IEnumerable <Personne> enfants = _connexion.ExecuterLecteur(com, j => j.VersPersonne()); var vivacite = enfants.Select(j => new { parentId = ((p.homme == 1) ? j.idmere : j.idpere), enfant = j }) .GroupBy(j => j.parentId) ; IList <Descendant> descendants = new List <Descendant>(); foreach (var ch in vivacite) { Console.WriteLine(ch); Console.WriteLine(ch.Count()); /* * Descendants d = new Descendants(ch.Key == null ? null : new PersonneRepository().Donner((int)ch.Key), * enfants.Where(j=>p.homme==1?j.idmere==ch.Key:j.idpere==ch.Key)); */ int? idparent = ch.Key; Personne parent = idparent == null?null:new PersonneRepository().Donner((int)idparent); foreach (var chch in ch) { descendants.Add(new Descendant { id = p.id, parent = parent, enfant = chch.enfant }); } } //if (descendants.Count() == 0) descendants = null; return(descendants); throw new NotImplementedException(); }
private static void InterditsVersHaut(int id, List <Personne> interdits) { Personne p = new PersonneRepository().Donner(id); AjIlistUnique(interdits, p); int?idpere = p.idpere; if (idpere != null) { InterditsVersHaut((int)idpere, interdits); } int?idmere = p.idmere; if (idmere != null) { InterditsVersHaut((int)idmere, interdits); } }
public Personne DonnerMere(int id) { Personne p = new PersonneRepository().Donner(id); return((p == null) ? null : (p.idmere == null) ? null : new PersonneRepository().Donner((int)p.idmere)); }