示例#1
0
        public EdexVestiging GetVestiging(EdexSamengesteldegroep groep)
        {
            var vestigingKeys = Leerlingen
                                .Where(l => l.Value.SamengesteldeGroepen.Contains(groep.Key))
                                .Select(l => l.Value.Vestiging).Distinct();

            if (vestigingKeys.Count() == 1)
            {
                return(Vestigingen.FirstOrDefault(v => v.Key == vestigingKeys.First()));
            }
            return(null);
        }
示例#2
0
        public IEnumerable <Tuple <EdexVestiging, EdexSamengesteldegroep> > GetSamenGesteldeGroepenWithVestiging()
        {
            var samengesteldeGroepenMetVestiging = Leerlingen.SelectMany(l => l.Value.SamengesteldeGroepen.Select(sg => new { VestigingKey = l.Value.Vestiging, Samengesteldegroep = Samengesteldegroepen[sg] })).Distinct();

            return(Samengesteldegroepen.Values.GroupJoin
                       (samengesteldeGroepenMetVestiging,
                       sg => sg.Key,
                       vsg => vsg.Samengesteldegroep.Key,
                       (sg, vsg) =>
            {
                if (vsg.Count() == 1)
                {
                    return vsg.Select(t => Tuple.Create(Vestigingen.FirstOrDefault(v => v.Key == t.VestigingKey), t.Samengesteldegroep)).Single();
                }
                return Tuple.Create(default(EdexVestiging), sg);
            }));
        }
示例#3
0
        public void importFile()
        {
            XmlTextReader reader = new XmlTextReader(PathOfFile);
            XDocument     xDoc   = XDocument.Load(reader);

            EdexAdministratie = EdexmlParser.ParseEdexfile(xDoc);
            if (EdexAdministratie != null)
            {
                Visible = true;
            }
            var groepenMetVestiging = EdexAdministratie.GetGroepenWithVestiging();

            foreach (var groepMetVestiging in groepenMetVestiging)
            {
                if (groepMetVestiging.Item1 != null)
                {
                    Vestiging vestiging = new Vestiging();
                    vestiging.Key  = groepMetVestiging.Item1.Key;
                    vestiging.Naam = groepMetVestiging.Item1.Naam;
                    AddVestiging(vestiging);
                }
                else
                {
                    var bestaandeVestiging = Vestigingen.FirstOrDefault(v => v.Key == null);
                    if (bestaandeVestiging == null)
                    {
                        bestaandeVestiging = new Vestiging();
                        Vestigingen.Add(bestaandeVestiging);
                    }
                }
            }

            AddGroepen();

            foreach (var leerling in EdexAdministratie.Leerlingen.Values)
            {
                EdexLeerlingenLijst.Add(leerling);
            }

            NotifyPropertyChanged("EdexAdministratie");
            NotifyPropertyChanged("Vestigingen");
            NotifyPropertyChanged("Visible");
        }
示例#4
0
        private void AddGroepen()
        {
            var groepen = EdexAdministratie.GetGroepenWithVestiging();

            foreach (var vestigingMetGroep in groepen)
            {
                var groep = CreateGroep(vestigingMetGroep);

                if (vestigingMetGroep.Item1 != null)
                {
                    var vestiging = Vestigingen.FirstOrDefault(v => v.Key == vestigingMetGroep.Item1.Key);
                    vestiging.Groepen.Add(groep);
                }
                else
                {
                    foreach (var vestiging in Vestigingen.Where(v => v.Key == null))
                    {
                        vestiging.Groepen.Add(groep);
                    }
                }
            }
        }
示例#5
0
 public IEnumerable <Tuple <EdexVestiging, EdexGroep> > GetGroepenWithVestiging()
 {
     return(Leerlingen.Values.Where(l => l.Groep != null).Select(l => Tuple.Create(l.Vestiging != null ? Vestigingen.FirstOrDefault(v => v.Key == l.Vestiging) : null, Groepen[l.Groep])).Distinct());
 }