Exemplo n.º 1
0
        /// <summary>
        /// Updatet de gegevens van groep <paramref name="g"/> in Kipadmin. Het stamnummer van <paramref name="g"/>
        /// bepaalt de groep waarover het gaat.
        /// </summary>
        /// <param name="g">Te updaten groep in Kipadmin</param>
        public void Bewaren(Groep g)
        {
            Kip.ServiceContracts.DataContracts.Groep syncGroep =
                MappingHelper.Map <Groep, Kip.ServiceContracts.DataContracts.Groep>(g);

            ServiceHelper.CallService <ISyncPersoonService>(svc => svc.GroepUpdaten(syncGroep));
        }
 public DraaiboekControllerTest()
 {
     _actieRepositoryMock = new Mock <IActieRepository>();
     _taakRepositoryMock  = new Mock <ITaakRepository>();
     _actieRepositoryMock.Setup(a => a.GeefAlles()).Returns(new List <Actie>()
     {
         new Actie("actie1", "omschrijving1")
         {
             ActieId     = 5,
             Goedgekeurd = true
         },
         new Actie("actie2", "omschrijving2"),
         new Actie("actie3", "omschrijving3")
         {
             Goedgekeurd = true
         },
         new Actie("actie4", "omschrijving4"),
         new Actie("actie5", "omschrijving5"),
         new Actie("actie6", "omschrijving6")
         {
             Goedgekeurd = true
         }
     });
     _actieRepositoryMock.Setup(a => a.GetById(5)).Returns(new Actie("Actie1", "omschrijving1"));
     _controller             = new DraaiboekController(_actieRepositoryMock.Object, _taakRepositoryMock.Object);
     _testCursistZonderGroep = new Cursist("Jochem", "VanHespen", "*****@*****.**");
     _groepTestCursist       = new Groep("G11", false)
     {
         CurrentState    = new ActieGoedgekeurdState(_groepTestCursist),
         ActieContainers = new List <ActieContainer>()
         {
             new ActieContainer()
             {
                 Acties = new List <Actie>()
                 {
                     new Actie("actie1", "omschrijving1")
                     {
                         ActieId     = 5,
                         Goedgekeurd = true
                     },
                     new Actie("actie2", "omschrijving2"),
                     new Actie("actie3", "omschrijving3")
                     {
                         Goedgekeurd = true
                     },
                     new Actie("actie4", "omschrijving4"),
                     new Actie("actie5", "omschrijving5"),
                     new Actie("actie6", "omschrijving6")
                     {
                         Goedgekeurd = true
                     }
                 }
             }
         }
     };
     _testCursist = new Cursist("Jochem", "VanHespen", "*****@*****.**")
     {
         Groep = _groepTestCursist
     };
 }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            _groep = ReadGroepFromSession(context.HttpContext);
            context.ActionArguments["groep"] = _groep;

            base.OnActionExecuting(context);
        }
        public IActionResult AccepteerGroep(Cursist cursist, AccepteerGroepViewModel model)
        {
            try
            {
                Groep groep = _groepRepository.GetBy(model.GroepNaam);
                groep.VoegCursistToe(cursist);
                _groepRepository.UpdateGroep(groep);
                _cursistRepository.UpdateCursist(cursist);

                _groepRepository.SaveChanges();
                // melding verwijderen + message meegeven?
                //ViewBag._userMessage = $"U bent succesvol toegevoegd aan {groep.Naam} ";
                return(RedirectToAction(nameof(ToonLeden), "BeherenGroep"));
            }
            catch (ArgumentException e)
            {
                cursist.Meldingen.Remove(cursist.Meldingen.Find(c => c.GroepNaam == model.GroepNaam));
                _cursistRepository.SaveChanges();
                @ViewBag._userError = e.Message;
                List <Melding> meldingen = cursist.Meldingen;
                List <Groep>   groepen   = new List <Groep>();

                meldingen.ForEach(m =>
                {
                    String naam = m.GroepNaam;
                    if (naam != null)
                    {
                        groepen.Add(_groepRepository.GetBy(naam));
                    }
                });

                ViewBag.groep = groepen;
                return(View("MaakGroep"));
            }
        }
Exemplo n.º 5
0
 public void Check(Groep g)
 {
     if (g == null || !_autorisatieMgr.IsGav(g))
     {
         throw FaultExceptionHelper.GeenGav();
     }
 }
Exemplo n.º 6
0
        public IActionResult Start(decimal id)
        {
            Groep groep = _groepRepository.GetById(id);

            if (groep == null)
            {
                return(NotFound());
            }

            if (groep.Currentstate == null)
            {
                groep.InitializeState();
                groep.KanSpelen();
                groep.Spelen();
                _groepRepository.SaveChanges();
            }

            if (groep.Fout == 3)
            {
                groep.Blok();
                _groepRepository.SaveChanges();
                return(RedirectToAction("Feedback", "Groep", new { Id = groep.Id }));
            }

            Pad pad = groep.getCurrentGroepPad(groep.Progress).Paden;

            ViewData["Oefening"] = pad.OefeningNaamNavigation;
            getFile(pad.OefeningNaamNavigation.Opgave);
            return(View(new AntwoordViewModel(pad, groep)));
        }
        public IActionResult NeemDeel(Sessie sessie, Leerling leerling, int groepId)
        {
            Groep groep = _groepsRepository.GetById(groepId);

            if (groep == null)
            {
                return(NotFound());
            }
            if (sessie.Klas.Leerlingen.Any(l => l.LeerlingId == leerling.LeerlingId))
            {
                groep.Leerlingen.Add(leerling);
                _groepsRepository.SaveChanges();
                if (sessie.Doelgroep == DoelgroepEnum.Volwassenen)
                {
                    groep.DeelnameBevestigd = true;
                    _groepsRepository.SaveChanges();
                    return(RedirectToAction(nameof(StartSpel), new { groepId }));
                }
            }
            else
            {
                TempData["error"] = "Je zit niet in de klas voor deze sessie!";
            }

            return(RedirectToAction("ValideerSessieCode", "Sessie", new { code = sessie.SessieCode.ToString() }));
        }
Exemplo n.º 8
0
        public IActionResult SpelSpelen(Groep groep, SpelViewModel svm)
        {
            if (groep.CurrentState is GroepGeblokkeerdState)
            {
                return(RedirectToAction(nameof(Feedback)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    groep.VerwerkAntwoord(svm.Groepsantwoord);
                }
                catch (DrieFoutePogingenException e)
                {
                    groep.Blokkeer();
                    _sessieRepository.SaveChanges();
                    TempData["danger"] = e.Message;
                    return(RedirectToAction(nameof(Feedback)));
                }
                catch (TijdVerstrekenException e)
                {
                    groep.Blokkeer();
                    _sessieRepository.SaveChanges();
                    TempData["danger"] = e.Message;
                    return(RedirectToAction(nameof(Feedback)));
                }
                catch (FoutAntwoordException)
                {
                    int pogingen = groep.Pad.GetCurrentOpdracht().FoutePogingen;
                    if (pogingen != 0)
                    {
                        TempData["danger"] = $"{svm.Groepsantwoord} is fout! Je hebt {pogingen} foute {(pogingen == 1 ? "poging" : "pogingen")} ondernomen.";
                    }
                    else
                    {
                        TempData["danger"] = $"{svm.Groepsantwoord} is fout!";
                    }
                }
                catch (AlleOpdrachtenVoltooidException)
                {
                }
                catch (StateException e)
                {
                    TempData["warning"] = e;
                }
                catch (Exception e)
                {
                    TempData["warning"] = e;
                }
            }

            _sessieRepository.SaveChanges();
            SpelViewModel svmMetInput = new SpelViewModel(groep)
            {
                Groepsantwoord = svm.Groepsantwoord
            };

            return(View(svmMetInput));
        }
Exemplo n.º 9
0
        private Groep CreateGroep(Tuple <EdexVestiging, EdexGroep> groepMetVestiging)
        {
            EdexGroep edexGroep = groepMetVestiging.Item2;
            Groep     groep     = new Groep();

            groep.Key  = edexGroep.Key;
            groep.Naam = edexGroep.Naam;

            if (groepMetVestiging.Item1 != null)
            {
                foreach (var leerling in this.EdexAdministratie.Leerlingen.Values.Where(l => l.Groep == edexGroep.Key && l.Vestiging == groepMetVestiging.Item1.Key))
                {
                    groep.Leerlingen.Add(leerling);
                }
            }
            else
            {
                foreach (var leerling in EdexAdministratie.Leerlingen.Values.Where(l => l.Groep == edexGroep.Key && l.Vestiging == null))
                {
                    groep.Leerlingen.Add(leerling);
                }
            }

            foreach (var leerkracht in EdexAdministratie.Leerkrachten.Values.Where(l => l.Groepen.Contains(edexGroep.Key)))
            {
                groep.Leerkrachten.Add(leerkracht);
            }

            return(groep);
        }
        private void TakeArgumentAndWriteToSession(ActionExecutingContext context, string sessionkey)
        {
            object obj;

            context.ActionArguments.TryGetValue(sessionkey, out obj);

            if (obj != null && sessionkey == "sessiecode")
            {
                _sessie = _sessieRepository.GetBySessieCode(obj.ToString());
                if (_sessie != null)
                {
                    context.HttpContext.Session.SetString(sessionkey, JsonConvert.SerializeObject(obj));
                }
                else
                {
                    context.HttpContext.Session.Remove("sessiecode");
                }
            }

            if (obj != null && sessionkey == "groepid")
            {
                _groep = _sessie.Groepen.FirstOrDefault(g => g.GroepId == Int32.Parse(obj.ToString()));
                if (_groep != null)
                {
                    context.HttpContext.Session.SetString(sessionkey, JsonConvert.SerializeObject(obj));
                }
                else
                {
                    context.HttpContext.Session.Remove("groepid");
                }
            }
        }
        internal static int SaveGroep(Groep g)
        {
            string sql;
            if (g == null)
                return g.ID;

            DbParameter par1 = Database.AddParameter("@Naam", g.Naam);
            DbParameter par2 = Database.AddParameter("@Beschrijving", g.Beschrijving);
            DbParameter par3 = Database.AddParameter("@Image", g.Image);
            DbParameter par4 = Database.AddParameter("@Facebook", g.Facebook);
            DbParameter par5 = Database.AddParameter("@Twitter", g.Twitter);
            DbParameter par6 = Database.AddParameter("@ID", g.ID);

            if (g.ID != 0)
            {
                sql = "Update groep SET Naam = @Naam, Beschrijving = @Beschrijving, Image = @Image, Facebook = @Facebook, Twitter = @Twitter WHERE GroepID = @ID";
                Database.ModifyData(sql, par1, par2, par3, par4, par5, par6);
                return g.ID;
            }
            else
            {
                sql = "INSERT INTO groep (Naam, Beschrijving, Image, Facebook, Twitter) VALUES (@Naam, @Beschrijving, @Image, @Facebook, @Twitter); SELECT SCOPE_IDENTITY() AS [InsertedReserveringID]";
                DbDataReader reader =  Database.GetData(sql, par1, par2, par3, par4, par5);
                if (reader.Read())
                    return Convert.ToInt32(reader[0]);
                else
                    return 0;
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Maakt een nieuwe categorie, en koppelt die aan een bestaande groep (met daaraan
        /// gekoppeld zijn categorieën)
        /// </summary>
        /// <param name="g">
        /// Groep waarvoor de categorie gemaakt wordt.  Als bestaande categorieën
        /// gekoppeld zijn, wordt op dubbels gecontroleerd
        /// </param>
        /// <param name="categorieNaam">
        /// Naam voor de nieuwe categorie
        /// </param>
        /// <param name="categorieCode">
        /// Code voor de nieuwe categorie
        /// </param>
        /// <returns>
        /// De toegevoegde categorie
        /// </returns>
        public Categorie CategorieToevoegen(Groep g, string categorieNaam, string categorieCode)
        {
            if (!_autorisatieMgr.IsGav(g))
            {
                throw new GeenGavException(Resources.GeenGav);
            }
            else
            {
                // Is er al een categorie met die code?
                Categorie bestaande = (from ctg in g.Categorie
                                       where string.Compare(ctg.Code, categorieCode, true) == 0 ||
                                       string.Compare(ctg.Naam, categorieNaam, true) == 0
                                       select ctg).FirstOrDefault();

                if (bestaande != null)
                {
                    // TODO (#507): Check op bestaande afdeling door DB
                    // OPM: we krijgen pas een DubbeleEntiteitException op het moment dat we bewaren,
                    // maar hier doen we alleen een .Add
                    throw new BestaatAlException <Categorie>(bestaande);
                }
                else
                {
                    var c = new Categorie();
                    c.Naam  = categorieNaam;
                    c.Code  = categorieCode;
                    c.Groep = g;
                    g.Categorie.Add(c);
                    return(c);
                }
            }
        }
 public GroepLeerling(Groep groep, Leerling leerling)
 {
     GroepId    = groep.GroepId;
     LeerlingId = leerling.LeerlingId;
     Groep      = groep;
     Leerling   = leerling;
 }
Exemplo n.º 14
0
        public IActionResult VerwerkToegangscode(Groep groep, SpelViewModel svm)
        {
            if (groep.CurrentState is GroepGeblokkeerdState)
            {
                return(RedirectToAction(nameof(Feedback)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    groep.VerwerkToegangscode(svm.Toegangscode);
                    _sessieRepository.SaveChanges();
                }
                catch (FouteToegangscodeException)
                {
                    TempData["foutetoegangscode"] = TempData["warning"] = $"De toegangscode {svm.Toegangscode} is fout.";
                }
                catch (StateException e)
                {
                    TempData["warning"] = e;
                }
                catch (Exception e)
                {
                    TempData["warning"] = e;
                }
            }

            SpelViewModel svmMetInput = new SpelViewModel(groep)
            {
                Toegangscode = svm.Toegangscode
            };

            return(View(nameof(SpelSpelen), svmMetInput));
        }
Exemplo n.º 15
0
        public IActionResult ZetGroepNietGekozen(Sessie sessie, Groep groep)
        {
            if (groep != null)
            {
                try
                {
                    // State veranderen
                    groep.ZetNietGekozen();
                    _sessieRepository.SaveChanges();

                    // Boodschap
                    TempData["success"] = $"Je hebt groep #{groep.GroepId} gedeselecteerd.";
                }
                catch (StateException e)
                {
                    TempData["warning"] = e;
                }
                catch (Exception e)
                {
                    TempData["warning"] = e;
                }
            }
            else
            {
                TempData["warning"] = $"Je hebt geen groep gereed gezet.";
            }
            return(RedirectToAction(nameof(GroepKiezen)));
        }
Exemplo n.º 16
0
        public IActionResult VolgendeOpdracht(Groep groep)
        {
            if (groep.CurrentState is GroepGeblokkeerdState)
            {
                return(RedirectToAction(nameof(Feedback)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    groep.StartVolgendeOpdracht();
                    _sessieRepository.SaveChanges();
                }
                catch (StateException e)
                {
                    TempData["warning"] = e;
                }
                catch (Exception e)
                {
                    TempData["warning"] = e;
                }
            }
            return(View(nameof(SpelSpelen), new SpelViewModel(groep)));
        }
Exemplo n.º 17
0
        public ActionResult SessieAfgelopen(Groep groep)
        {
            var score             = _vooruitgangRepository.GetBy(groep.Id).Score;
            var totAantalOef      = _vooruitgangRepository.GetBy(groep.Id).OefNummer;
            var huidigeSessieNaam = _vooruitgangRepository.GetBy(groep.Id).Sessienaam;

            List <Vooruitgang> alleVooruitgangVanSessie = new List <Vooruitgang>();

            foreach (Vooruitgang v in _vooruitgangRepository.GetAll())
            {
                if (v.Sessienaam == huidigeSessieNaam)
                {
                    alleVooruitgangVanSessie.Add(v);
                }
            }

            int aantal = alleVooruitgangVanSessie.Count(v => v.OefNummer == totAantalOef);

            if (aantal == 1)
            {
                ViewBag.score = "Proficiat! Je hebt de schatkist gevonden!";
            }
            else
            {
                ViewBag.score = "Proficiat, je hebt alle oefeningen opgelost! Iemand is al met de schatkist gaan lopen.";
            }

            return(View());
        }
Exemplo n.º 18
0
        private Groep ReadGroepFromSession(HttpContext context)
        {
            Groep groep = context.Session.GetString("groep") == null ?
                          new Groep() : JsonConvert.DeserializeObject <Groep>(context.Session.GetString("groep"));

            return(groep);
        }
Exemplo n.º 19
0
        //
        // GET: /Groep/Edit/5

        public ActionResult Edit(int id)
        {
            Groep groep = unitOfWork.GroepRepository.GetById(id);

            ViewBag.EnqueteID = new SelectList(unitOfWork.EnqueteRepository.GetAll(), "ID", "Titel", groep.EnqueteID);
            return(View(groep));
        }
Exemplo n.º 20
0
        public IActionResult Action(decimal id, ActionViewModel actionViewModel)
        {
            Groep groep = _groepRepository.GetById(id);

            if (groep == null)
            {
                return(NotFound());
            }

            Pad pad = groep.getCurrentGroepPad(groep.Progress).Paden;

            if (pad.Toegangscode.Code == actionViewModel.Toegangscode)
            {
                groep.VerhoogProgress();

                _groepRepository.SaveChanges();

                return(RedirectToAction("Start", "Groep", new { Id = groep.Id }));
            }
            else
            {
                if (groep.Fout == 3)
                {
                    groep.Blok();
                }
                else
                {
                    groep.VerhoogFout();
                }
            }

            return(View(new ActionViewModel(pad, groep, false)));
        }
Exemplo n.º 21
0
        //
        // GET: /Groep/Delete/5

        public ActionResult Delete(int id)
        {
            EnqueteContext db    = new EnqueteContext();
            Groep          groep = db.Groepen.Find(id);

            return(View(groep));
        }
Exemplo n.º 22
0
        /// <summary>
        /// Controleer of <paramref name="filter"/> geen zaken probeert op te vragen waarvoor
        /// je geen rechten hebt.
        /// </summary>
        /// <param name="filter">Een lidfilter</param>
        private void SecurityCheck(LidFilter filter)
        {
            // Check security
            // We verwachten minstens 1 van volgende zaken:
            // GroepID, GroepsWerkJaarID, AfdelingID, FunctieID
            // Als je recht hebt op groep, groepswerkjaar, afdeling of functie
            // dan krijg je resultaat. Securitygewijze is dat geen probleem, want
            // alle zoekvoorwaarden worden 'ge-and'.
            // Heb je geen rechten op groep, groepswerjaar, afdeling of functie,
            // dan krijg je een exception (te veel geknoei)

            Groep groep = null;

            if (filter.GroepID != null)
            {
                groep = _groepenRepo.ByID(filter.GroepID.Value);
            }
            else if (filter.GroepsWerkJaarID != null)
            {
                groep = _groepsWerkJarenRepo.ByID(filter.GroepsWerkJaarID.Value, "Groep").Groep;
            }
            else if (filter.AfdelingID != null)
            {
                groep = _afdelingenRepo.ByID(filter.AfdelingID.Value, "Groep").ChiroGroep;
            }
            else if (filter.FunctieID != null)
            {
                groep = _functiesRepo.ByID(filter.FunctieID.Value, "Groep").Groep;
            }

            if (!_autorisatieMgr.IsGav(groep))
            {
                throw FaultExceptionHelper.GeenGav();
            }
        }
        public IActionResult Lounge(decimal id)
        {
            Groep groep = _groepRepository.GetById(id);

            if (groep == null)
            {
                return(NotFound());
            }


            if (groep.Currentstate == null)
            {
                groep.InitializeState();
                groep.GekozenEnVergrendeld();
                //groep.KanSpelen();
                //groep.Spelen();
                _groepRepository.SaveChanges();
            }
            else if (groep.Currentstate.GetStateEnum() == State.BLOK)
            {
                return(RedirectToAction("Feedback", "Groep", new { Id = groep.Id }));
            }


            return(View(groep));
        }
Exemplo n.º 24
0
        public SpelViewModel(Groep groep)
        {
            NrHuidigeOpdracht  = groep.Pad.GetProgressie()[0];
            NrTotaalOpdrachten = groep.Pad.GetProgressie()[1];

            if (groep.Pad.GetCurrentOpdracht().IsOpgelost)
            {
                PercentageVoltooid = (int)(((double)(NrHuidigeOpdracht) / (double)NrTotaalOpdrachten) * 100);
            }
            else
            {
                PercentageVoltooid = (int)(((double)(NrHuidigeOpdracht - 1) / (double)NrTotaalOpdrachten) * 100);
            }

            Opdracht        = groep.Pad.GetCurrentOpdracht();
            IsTijdsOpdracht = Opdracht.OpdrachtBepaler is EnumOpdrachtBepaler.TIJD;

            try
            {
                VolgendeOpdrachtIsToegankelijk = groep.Pad.GetNextOpdracht().IsToegankelijk;
                ToegangscodeVolgendeOpdracht   = groep.Pad.GetNextOpdracht().Toegangscode.Code;
                ActieVolgendeOpdracht          = groep.Pad.GetNextOpdracht().Actie.Omschrijving;
            }
            catch (ArgumentOutOfRangeException) // laatste oefening
            {
                IsLaatsteOefening = true;
            }
        }
Exemplo n.º 25
0
 public ActionViewModel(Pad pad, Groep groep, bool isSchatkist, string opgave = "")
 {
     Pad         = pad;
     Groep       = groep;
     Actie       = pad.ActieNaamNavigation;
     IsSchatkist = isSchatkist;
     Opgave      = opgave;
 }
Exemplo n.º 26
0
 public GroepViewModel(Groep groep, Sessie sessie)
 {
     GroepNaam             = groep.Groepsnaam;
     Groep                 = groep;
     Sessie                = sessie;
     BeschikbareLeerlingen = new List <Leerling>();
     CheckBeschikbareLeerlingen();
 }
 public static void RemoveGenre(Groep g, Genre gr)
 {
     string sql = "DELETE FROM groep_genre WHERE GroepID = @GID and GenreID = @GrID";
     Database.ModifyData(sql,
         Database.AddParameter("@GID", g.ID),
         Database.AddParameter("@GrID", gr.ID)
         );
 }
 internal static void AddGenre(Genre genre, Groep groep)
 {
     string sql = "INSERT INTO groep_genre VALUES (@GID, @GrID)";
     Database.ModifyData(sql,
         Database.AddParameter("@GID", groep.ID),
         Database.AddParameter("@GrID", genre.ID)
         );
 }
Exemplo n.º 29
0
        public ActionResult DeleteConfirmed(int id)
        {
            EnqueteContext db    = new EnqueteContext();
            Groep          groep = db.Groepen.Find(id);

            db.Groepen.Remove(groep);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 private void WriteGroepToSession(Groep groep, HttpContext context)
 {
     context.Session.SetString("groepstate", JsonConvert.SerializeObject(groep.Currentstate, Formatting.Indented, new JsonSerializerSettings
     {
         TypeNameHandling       = TypeNameHandling.Objects,
         TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
     }));
     context.Session.SetString("groep", JsonConvert.SerializeObject(groep));
 }
Exemplo n.º 31
0
 public GroupDialog(LoginUnitOfWork uow, Groep curGroep = null)
 {
     VM = new GroupDialogVm()
     {
         UnitOfWork = uow, CurrentGroep = curGroep
     };
     DataContext = VM;
     InitializeComponent();
 }
Exemplo n.º 32
0
        public void NodigUitVoorGroep_CursistHeeftGroep_ArgumentException()
        {
            //arrange
            Groep groep = new Groep("Test", false);

            cursist.Groep = groep;

            //assert
            Assert.Throws <ArgumentException>(() => cursist.NodigUitVoorGroep("*****@*****.**", "TestGroep"));
        }
Exemplo n.º 33
0
        /// <summary>
        /// Maakt een bivakplaats op basis van de naam <paramref name="plaatsNaam"/>, het
        /// <paramref name="adres"/> van de bivakplaats, en de ingevende
        /// <paramref name="groep"/>.
        /// </summary>
        /// <param name="plaatsNaam">
        /// Naam van de bivakplaats
        /// </param>
        /// <param name="adres">
        /// Adres van de bivakplaats
        /// </param>
        /// <param name="groep">
        /// Groep die de bivakplaats ingeeft
        /// </param>
        /// <returns>
        /// De nieuwe plaats; niet gepersisteerd.
        /// </returns>
        private Plaats Maken(string plaatsNaam, Adres adres, Groep groep)
        {
            var resultaat = new Plaats {
                Naam = plaatsNaam, Adres = adres, Groep = groep, ID = 0
            };

            adres.BivakPlaats.Add(resultaat);
            groep.BivakPlaats.Add(resultaat);

            return(resultaat);
        }
        internal static void DeleteGroep(Groep g)
        {
            if(g != null && g.ID != 0)
            {
                VerwijderOptredens(g);

                string sql = "DELETE FROM groep_genre WHERE GroepID = @ID";
                Database.ModifyData(sql, Database.AddParameter("@ID", g.ID));

                sql = "DELETE FROM groep WHERE GroepID = @ID";
                Database.ModifyData(sql, Database.AddParameter("@ID", g.ID));
            }
        }
        public static int GetAantalOptredensByOptreden(Groep groep)
        {
            string sql = "SELECT COUNT(GroepID) FROM optreden WHERE GroepID = @ID";
            DbDataReader reader = Database.GetData(sql, Database.AddParameter("@ID", groep.ID));

            if (reader.Read())
            {
                int i = Convert.ToInt32(reader[0]);
                reader.Close();
                return i;
            }

            reader.Close();
            return 0;
        }
        internal static ObservableCollection<Optreden> GetOptredensByGroep(Groep g)
        {
            ObservableCollection<Optreden> lOptredens = new ObservableCollection<Optreden>();

            string sql = "SELECT * FROM optreden WHERE GroepID = @ID";
            DbDataReader reader = Database.GetData(sql, Database.AddParameter("@ID", g.ID));

            while (reader.Read())
            {
                lOptredens.Add(MaakOptreden(reader));
            }

            reader.Close();
            return lOptredens;
        }
        private static void VerwijderOptredens(Groep g)
        {
            ObservableCollection<Optreden> lOptredens = OptredenRepository.GetOptredensByGroep(g);

            foreach(Optreden o in lOptredens)
            {
                UrenRepository.VerwijderOptredenUurByOptreden(o);
                OptredenRepository.Delete(o);
            }
        }
        private static Groep MaakGroep(DbDataReader reader)
        {
            Groep g = new Groep();

            g.ID = Convert.ToInt32(reader["GroepID"]);
            g.Naam = reader["Naam"].ToString();
            g.Beschrijving = reader["Beschrijving"].ToString();
            g.Image = reader["Image"].ToString();
            g.Facebook = reader["Facebook"].ToString();
            g.Twitter = reader["Twitter"].ToString();
            g.Genres = GenreRepository.GetGenresByGroepId(g.ID);

            return g;
        }