/// <summary> /// Zoekt een afdelingsjaar uit het gegeven <paramref name="groepsWerkJaar"/>, waarin een persoon /// met gegeven <paramref name="geslacht"/> en <paramref name="geboorteDatum"/> lid zou kunnen worden, /// of <c>null</c> als er zo geen bestaat. /// </summary> /// <param name="geboorteDatum">een geboortedatum</param> /// <param name="geslacht">een geslacht</param> /// <param name="groepsWerkJaar">een groepswerkjaar waarin we naar een afdeling zoeken</param> /// <returns>Afdelingsjaar uit het gegeven <paramref name="groepsWerkJaar"/>, waarin een persoon /// met gegeven <paramref name="geslacht"/> en <paramref name="geboorteDatum"/> lid zou kunnen worden, /// of <c>null</c> als er zo geen bestaat.</returns> public AfdelingsJaar AfdelingsJaarVoorstellen(DateTime geboorteDatum, GeslachtsType geslacht, GroepsWerkJaar groepsWerkJaar) { var geboortejaar = geboorteDatum.Year; // Bestaat er een afdeling waar de gelieerde persoon als kind in zou passen? // (Als er meerdere mogelijkheden zijn zullen we gewoon de eerste kiezen, maar we sorteren op // overenkomst geslacht) var mogelijkeAfdelingsJaren = groepsWerkJaar.AfdelingsJaar.Where(a => a.OfficieleAfdeling.ID != (int)NationaleAfdeling.Speciaal && geboortejaar <= a.GeboorteJaarTot && a.GeboorteJaarVan <= geboortejaar).OrderByDescending( a => (geslacht & a.Geslacht)).ToArray(); return(mogelijkeAfdelingsJaren.FirstOrDefault()); }
/// <summary> /// Maakt een afdelingsjaar voor een groep en een afdeling, persisteert niet. /// </summary> /// <param name="a"> /// Afdeling voor nieuw afdelingsjaar /// </param> /// <param name="oa"> /// Te koppelen officiële afdeling /// </param> /// <param name="gwj"> /// Groepswerkjaar (koppelt de afdeling aan een groep en een werkJaar) /// </param> /// <param name="geboorteJaarBegin"> /// Geboortejaar van /// </param> /// <param name="geboorteJaarEind"> /// Geboortejaar tot /// </param> /// <param name="geslacht"> /// Bepaalt of de afdeling een jongensafdeling, meisjesafdeling of /// gemengde afdeling is. /// </param> /// <returns> /// Het aangemaakte afdelingsjaar /// </returns> public AfdelingsJaar Aanmaken( Afdeling a, OfficieleAfdeling oa, GroepsWerkJaar gwj, int geboorteJaarBegin, int geboorteJaarEind, GeslachtsType geslacht) { var afdelingsJaar = new AfdelingsJaar { OfficieleAfdeling = oa, Afdeling = a, GroepsWerkJaar = gwj, GeboorteJaarVan = geboorteJaarBegin, GeboorteJaarTot = geboorteJaarEind, Geslacht = geslacht }; // TODO check if no conflicts with existing afdelingsjaar a.AfdelingsJaar.Add(afdelingsJaar); oa.AfdelingsJaar.Add(afdelingsJaar); gwj.AfdelingsJaar.Add(afdelingsJaar); FoutNummer?afdelingsJaarFout = new AfdelingsJaarValidator().FoutNummer(afdelingsJaar); if (afdelingsJaarFout == FoutNummer.OngeldigeGeboorteJarenVoorAfdeling) { throw new FoutNummerException(afdelingsJaarFout.Value, Resources.OngeldigeGeboorteJarenVoorAfdeling); } if (afdelingsJaarFout != null) { throw new FoutNummerException(afdelingsJaarFout.Value, Resources.AfdelingsJaarOngeldig); } return(afdelingsJaar); }
public static string Geslacht(this HtmlHelper htmlHelper, GeslachtsType g) { return(g == GeslachtsType.Man ? "♂" : g == GeslachtsType.Vrouw ? "♀" : g == GeslachtsType.X ? "X" : "??"); }