public override string GeefBeschikbaarheid(DateTime startDatum, DateTime eindDaum, IList <DateTime> dagen, Materiaal materiaal, int aantal, bool onbeschikbaar) { if (onbeschikbaar) { return($"Niet meer beschikbaar van {HulpMethode.DateToString(startDatum)} tot {HulpMethode.DateToString(eindDaum)}"); } return(""); }
public string GetDateToString(DateTime startDatum, IEnumerable <DateTime> dagen, DateTimeFormatInfo dtfi) { string datum; if (dagen != null) { datum = HulpMethode.DatesToString(dagen); } else { datum = HulpMethode.DateToString(startDatum); } return(datum); }
public void MaakBlokkeringen(IDictionary <Materiaal, int> potentieleReservaties, string startDatum, string[] dagen) { //Het converten van string naar DateTime DateTime start = HulpMethode.GetStartDatum(startDatum); DateTime einde = HulpMethode.GetEindDatum(startDatum); OverruledeReservaties = new List <Reservatie>(); IDictionary <DateTime, IList <string> > dagenGeblokkeerd = verdeelDagenOverWeken(dagen); foreach (var pair in dagenGeblokkeerd) { string startDate = HulpMethode.DateToString(pair.Key); string[] geblokkeerdeDagen = pair.Value.ToArray(); //Overlopen van map met potentiele reserveringen/blokkeringen/overrulingen foreach (KeyValuePair <Materiaal, int> potentiele in potentieleReservaties) { //Aantal Lokale variabele aanmaken die we nodig hebben Materiaal mat = potentiele.Key; int reserveerAantal = potentiele.Value; //opvragen van het aantal reservaties die niet geblokkeerd, opgehaald of overruult zijn int aantalBeschikbaar = mat.GeefAantalBeschikbaarVoorBlokkering(); //Eerst gaan we kijken of er nog genoeg beschikbaar zijn om gwn te reserveren //we vergelijken de aantal beschikbare stuks voor het materiaal met het aantal dat we nodig hebben voor onze reservatie //Zo ja maken we gwn reservaties (lectoren blokkeren altijd!!) //Zo niet gaan we over tot het overrulen van reservaties if (aantalBeschikbaar >= reserveerAantal) { //Aanmaken van reservaties VoegReservatieToe(mat, reserveerAantal, startDate, geblokkeerdeDagen); } else { //Overrulen BerekenenOverrulenEnBlokkeren(mat, reserveerAantal, aantalBeschikbaar, start, geblokkeerdeDagen); //Aanmaken van reservaties (overrulen betekend dat lector altijd zal kunnen reserveren) VoegReservatieToe(mat, reserveerAantal, startDate, geblokkeerdeDagen); } } } }