Code:
/// <summary>
/// Durchläuft den Baugruppenbaum und speichert alles in einer Liste
/// </summary>
/// <param name="swKomponente">Der Baum der aktiven Baugruppe</param>
/// <param name="nLevel">Level im Baum. Default =1</param>
/// <param name="dateiname">Der Name der Datei</param>
/// <param name="dateipfad">Der Pfad der Datei</param> private static List<BaugruppenHierchie> DurchlaelftBaugruppeEbene(Component2 swKomponente, long nLevel, string dateipfad, string dateiname)
{
var listItem = new List<BaugruppenHierchie>();
//Part oder Baugruppe, was durchlaufen wird um die "Kinder" zu suchen.
object[] elternBaugruppe;
// Hilfsvariabel um die "Kinder zu durchlaufen.
Component2 kindKomponente;
//TODO Wenn die Datei ein Part ist muss diese nicht durchlaufen werden. Abfangen.
//Holt die "Kinder" der Baugruppe
elternBaugruppe = (object[])swKomponente.GetChildren();
foreach (var itemElternBaugruppe in elternBaugruppe)
{
//Hier wird von einer Unterbaugruppe die darin enthalten Teile und Unterbaugruppen gefunden.
kindKomponente = (Component2)itemElternBaugruppe;
//Dateipfad der Kinderkomponenten
string dateiPfadKind = kindKomponente.GetPathName();
//Der Name von dem Part oder der Baugruppe
//? Muss noch überarbeitet werden
string nurmmerModel = FindeName(dateiPfadKind);
//Hinzufügen zur Liste
listItem.Add(new BaugruppenHierchie { Pfad = dateiPfadKind, Dokumentennummer = nurmmerModel, LevelBaugruppe = nLevel });
//Erneutest durchlaufen
DurchlaelftBaugruppeEbene(kindKomponente, nLevel + 1, dateiPfadKind, nurmmerModel);
}
return listItem;
}