public List <Int32> ListCataloguesArticle(Int32 Article) { List <Int32> result = new List <int>(); List <Model.Local.Catalog> Catalogs = new Model.Local.CatalogRepository().List(); // récupération des ids des catalogues rattachés aux articles sélectionnés result.AddRange(Catalogs.Where(c => c.Article.Count(a => a.Art_Id == Article) > 0 || c.ArticleCatalog.Count(ac => ac.Art_Id == Article) > 0) .Select(c => c.Cat_Id)); // récupération des catalogues parents de ceux déjà filtrés Catalogs = Catalogs.Where(c => c.ChildrenContainsCatalog(result)).ToList(); result.AddRange(Catalogs.Select(c => c.Cat_Id)); // tri des doublons result = result.Distinct().ToList(); return(result); }