예제 #1
0
        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>()));
        }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
        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);
        }