private Leerlijn GetLeerlijn(XElement vakgebiedItem) { var deelgebiedItems = vakgebiedItem.XPathSelectElements("./Items/Item"); var deellijnen = new List <Deellijn>(); var deelgebieden = new List <string>(); string vakgebiednaam = vakgebiedItem.Attribute("Naam").Value; foreach (var deelgebiedItem in deelgebiedItems) { Deellijn deellijn = GetDeellijn(deelgebiedItem); deelgebieden.Add(deellijn.Deelgebied); deellijnen.Add(deellijn); } Vakgebied vakgebied; vakgebied = this.vakgebieden.TryGetValue(vakgebiednaam, out vakgebied) ? new Vakgebied(vakgebiednaam, vakgebied.Deelgebieden.Union(deelgebieden), new AuditTrail <Vakgebied>(vakgebied)) : new Vakgebied(vakgebiednaam, deelgebieden, new AuditTrail <Vakgebied>()); this.vakgebieden[vakgebiednaam] = vakgebied; return(new Leerlijn(Guid.NewGuid(), vakgebied, deellijnen, new AuditTrail <Leerlijn>())); }
/// <summary> /// Voegt de deellijnen toe aan de verzameling met daarbij de vulling van de niveaudoelen. /// </summary> /// <param name="deellijn"></param> public void ExecuteAddDeellijn(Deellijn deellijn) { if (deellijn != null) { DeellijnViewModel Deellijn = new DeellijnViewModel(); Deellijn.Deelgebied = deellijn.Deelgebied; foreach (var niveaudoel in deellijn.AlleNiveauDoelen) { Deellijn.AddNiveaudoelen(niveaudoel); } Deellijnen.Add(Deellijn); } }
private Deellijn GetDeellijn(XElement element) { var subitems = element.XPathSelectElements("./Subitems/Subitem").ToList(); var niveaus = subitems.Select(GetNiveau).Distinct(); IEnumerable <Niveautrede> tredes = niveaus.Select( n => new Niveautrede( Guid.NewGuid(), n, new List <Doel>( subitems.Where(i => GetNiveau(i) == n) .Select(d => new Doel(d.Attribute("Naam").Value, new AuditTrail <Doel>()))), new AuditTrail <Niveautrede>())).ToList(); string deelgebiednaam = element.Attribute("Naam").Value; var deellijn = new Deellijn(Guid.NewGuid(), deelgebiednaam, tredes, GetHoofdDoelen(subitems, tredes.SelectMany(d => d.Doelen)), new AuditTrail <Deellijn>()); return(deellijn); }