public void AddReservation(Dictionary <Materiaal, int> teReserverenMaterialen, DateTime ophaalDatum, DateTime indienDatum, DateTime today) { if (teReserverenMaterialen == null || teReserverenMaterialen.Count == 0) { throw new ArgumentException("Er moet ten minste 1 materiaal gereserveerd worden."); } if (today > ophaalDatum) { throw new ArgumentException("De ophaaldatum moet na vandaag zijn."); } Reservatie reservatie = new Reservatie(this, ophaalDatum, indienDatum); reservatie.ReservatieLijnen = new List <ReservatieLijn>(); foreach (KeyValuePair <Materiaal, int> entry in teReserverenMaterialen) { Materiaal mat = entry.Key; int amount = entry.Value; long availableAmount = GetAmountAvailableForReservation(mat, ophaalDatum, indienDatum); if (amount > availableAmount) { throw new ArgumentException(string.Format("Het materiaal {0} heeft nog maar {1} exemplaren beschikbaar.", mat.Name, availableAmount)); } reservatie.AddReservationLine(mat, amount, ophaalDatum, indienDatum); } if (reservatie.ReservatieLijnen.Count == 0) { throw new ArgumentException("Een reservatie moet minstens één materiaal bevatten."); } Reservaties.Add(reservatie); }
public override void VoegReservatieToe(Dictionary <Product, int> map, DateTime startDate, DateTime eindDate, Email[] email, bool[] dagen = null) { EmailService service = new EmailService(); Reservatie r = new Reservatie { StartDatum = startDate, EindDatum = eindDate, ReservatieStatus = ReservatieStatus.Gereserveerd, ReservatieUser = this, AanmaakDatum = DateTime.Now }; foreach (KeyValuePair <Product, int> entry in map) { if (entry.Value != 0) { if (entry.Value > entry.Key.GeefAantalReserveerbaarInPeriode(startDate, eindDate)) { throw new ArgumentOutOfRangeException("Er zijn niet genoeg stuks beschikbaar van " + entry.Key.Artikelnaam); } else if (entry.Value < 0) { throw new ArgumentOutOfRangeException("U kan geen negatieve waarde toekennen aan " + entry.Key.Artikelnaam); } r.VoegReservatieLijnToe(entry.Key, entry.Value); } } Reservaties.Add(r); service.VerzendEmail(r, this, email[0]); }
protected override void VoegReservatieToe(Materiaal materiaal, int aantal, string startdatum, string[] dagen = null) { Reservatie reservatie = MaakReservatieObject(this, materiaal, startdatum, aantal); materiaal.AddReservatie(reservatie); Reservaties.Add(reservatie); }
public override void VoegReservatieToe(Dictionary <Product, int> map, DateTime van, DateTime tot, Email[] email, bool[] dagen) { EmailService emailService = new EmailService(); Blokkering b = new Blokkering { StartDatum = van, EindDatum = tot, ReservatieUser = this, ReservatieStatus = ReservatieStatus.Geblokkeerd, AanmaakDatum = DateTime.Now, }; int i = 0; foreach (KeyValuePair <Product, int> entry in map) { if (entry.Value != 0) { if (entry.Value > entry.Key.AantalInCatalogus) { throw new ArgumentOutOfRangeException("Er zijn niet genoeg stuks beschikbaar van " + entry.Key.Artikelnaam); } if (entry.Value < 0) { throw new ArgumentOutOfRangeException("U kan geen negatieve waarde toekennen aan " + entry.Key.Artikelnaam); } if (dagen == null || dagen.All(l => !l)) { throw new ArgumentNullException("Selecteer 1 of meerdere dagen voor " + entry.Key.Artikelnaam); } int aantal = entry.Key.GeefAantalReserveerbaarInPeriode(van, tot); if (aantal < entry.Value) { entry.Key.WijzigReservatieAantal(entry.Value - aantal) .ForEach(s => addStudenten(s)); } bool[] dagenProduct = new bool[5]; Array.Copy(dagen, i, dagenProduct, 0, 5); b.VoegReservatieLijnToe(entry.Key, entry.Value, dagenProduct); } i += 5; } Reservaties.Add(b); emailService.VerzendEmail(b, this, email[0]); studenten.Reverse(); ApplicationUser[] array = studenten.ToArray(); for (int j = 0; j < teller; j++) { if (j == 0)//Wijzigen { emailService.VerzendEmail(b, array[j], email[2]); } else//anuleren { emailService.VerzendEmail(b, array[j], email[1]); } } }
public void VoegReservatieToe(Reservatie reservatie) { Reservaties.Add(reservatie); SaveChanges(); }
public void AddReservatie(Reservatie reservatie) { Reservaties.Add(reservatie); }