/// <summary> /// User wordt uitgeschreven bij de sessie /// </summary> /// <param name="sessie">User object</param> public void SchrijfUit(Gebruiker gebruiker) { if (StartDatum <= DateTime.Now) { throw new SchrijfInSchrijfUitException("Je kan je niet uitschreven in een sessie die gepasseerd is."); } if (gebruiker == Verantwoordelijke) { throw new SchrijfInSchrijfUitException("Je kan je niet uitschreven voor een sessie waarvoor je verantwoordelijk bent."); } bool succes = false; foreach (GebruikerSessie gebruikerSessie in GebruikerSessies) { if (gebruikerSessie.Gebruiker == gebruiker) { gebruiker.GebruikerSessies.Remove(gebruikerSessie); GebruikerSessies.Remove(gebruikerSessie); succes = true; break; } } if (!succes) { throw new SchrijfInSchrijfUitException("Je kon niet worden uitgeschreven, omdat je niet ingeschreven bent."); } }
/// <summary> /// User wordt ingeschreven bij de sessie /// </summary> /// <param name="sessie">User Object</param> public void SchrijfIn(Gebruiker gebruiker) { if (StartDatum < DateTime.Now) { throw new SchrijfInSchrijfUitException("je kan je niet inschrijven in een verleden maand."); } if (GebruikerSessies.Count > Capaciteit) { throw new SchrijfInSchrijfUitException("je kan je niet meer inschrijven in deze sessie. De sessie is volzet."); } foreach (GebruikerSessie gebruikerSessie in GebruikerSessies) { if (gebruikerSessie.Gebruiker == gebruiker) { throw new SchrijfInSchrijfUitException("Je bent al ingeschreven voor deze sessie."); } } if (gebruiker.StatusGebruiker == StatusGebruiker.Actief) { GebruikerSessie gebruikersessie = new GebruikerSessie(this, gebruiker); gebruiker.GebruikerSessies.Add(gebruikersessie); GebruikerSessies.Add(gebruikersessie); } else { throw new GeenActieveGebruikerException("Je kan je niet inschrijven omdat je geen actieve gebruiker bent. Gelieve contact op te nemen met de hoofdverantwoordelijk."); } }