public Reservatie MaakReservatie(Pand pand, Klant klant, Periode reservatiePeriode, int aantalPersonen) { // pand beschikbaar voor reservatiePeriode? if (pand.GetOnbeschikbareNachten(reservatiePeriode).Any()) { throw new ArgumentException("Pand is onbeschikbaar voor periode" + $" {string.Join(", ", pand.GetOnbeschikbareNachten(reservatiePeriode))}"); } // reservatie voor geldig aantal personen? if (pand.MaxAantalPersonen < aantalPersonen) { throw new ArgumentException($"Reservatie voor {aantalPersonen} " + $"personen overschrijdt maximum van {pand.MaxAantalPersonen} personen"); } // reservatie voor geldige verblijfsduur? if (pand.MinVerblijfsduur > reservatiePeriode.AantalNachten) { throw new ArgumentException($"Reservatie voor {reservatiePeriode.AantalNachten} " + $"nachten voldoet niet aan minimum van {pand.MinVerblijfsduur} nachten"); } PrijsOfferte prijsOfferte = _prijsOfferteBuilder.GetPrijsOfferte(pand, reservatiePeriode, klant, aantalPersonen); return(new Reservatie(pand, klant, reservatiePeriode, aantalPersonen, prijsOfferte)); }
public Reservatie(Pand pand, Klant klant, Periode reservatiePeriode, int aantalPersonen, PrijsOfferte prijsOfferte) { Pand = pand; Klant = klant; ReservatiePeriode = reservatiePeriode; AantalPersonen = aantalPersonen; PrijsOfferte = prijsOfferte; }
public AfroepContract(Klant klant, Pand pand, Periode periode, int overnachtingsQuota, VastePrijsPromotie vastePrijsPromotie) { Klant = klant; Pand = pand; Periode = periode; OvernachtingsQuota = overnachtingsQuota; VastePrijsPromotie = vastePrijsPromotie; }
public void MaakCatalogusEnVoegPandenToe(Pand p) { if (_catalogus == null) { _catalogus = new HuurPandCatalogus(); } _catalogus.Add(p); Assert.IsTrue(_catalogus.Contains(p)); }
public void AfroepContractHeeftKlantPeriodeEnHuurobject() { Klant klant = new Klant(new KlantCategorie(KlantCategorieNaam.Reisbroker), "TravelSL"); Periode periode = new Periode("01/04/2019", "31/12/2019"); Pand pand = TestDataGenerator.GetTestPand(); int overnachtingsQuota = 30; VastePrijsPromotie contractBonus = new VastePrijsPromotie(-10000.00); AfroepContract testContract = new AfroepContract(klant, pand, periode, overnachtingsQuota, contractBonus); Assert.IsTrue(testContract.GetType() == typeof(AfroepContract)); }
public PrijsOfferte GetPrijsOfferte(Pand pand, Periode reservatiePeriode, Klant klant, int aantalPersonen) { _pand = pand; _reservatiePeriode = reservatiePeriode; _klant = klant; _aantalPersonen = aantalPersonen; AddHuurpijsEnStaffelRegels(); AddPandRegels(); AddPromotieRegels(); return(_prijsOfferte); }
public void PandReserverenVoorPeriodeOpNaamVanKlant() { Pand pand = PandBuilder.CreatePand("testvilla").Get(); pand.MaxAantalPersonen = 6; Klant klant = new Klant(new KlantCategorie(KlantCategorieNaam.Particulier), "Lathouwers"); int aantalPersonen = 6; Periode reservatiePeriode = new Periode("21/04/2019", "25/04/2019"); ReservatieBuilder reservatieBuilder = new ReservatieBuilder(PrijsOfferteBuilder); Reservatie testReservatie = reservatieBuilder.MaakReservatie(pand, klant, reservatiePeriode, aantalPersonen); Assert.IsTrue(testReservatie.GetType() == typeof(Reservatie)); }
private void AddAfroepContract() { Klant klant = RentAVillaRentingService.KlantenBestand.Find(kl => kl.Naam == "Traveling Lathouwers NV"); Pand pand = RentAVillaRentingService.HuurPanden.Find(p => p.Land == ActieveLanden.Frankrijk); VastePrijsPromotie vastePrijsPromotie = new VastePrijsPromotie(-2500); int overnachtingsQuota = 50; RentAVillaRentingService.AfroepContracten.Add(new AfroepContract(klant, pand, new Periode("01/04/2019", "01/09/2019"), overnachtingsQuota, vastePrijsPromotie)); }
public void GivenPandenKlanten_CanCreateReservatieWithPrijsOfferteAndAddToReservatieBoek() { CreateRentingService(); AddTestPandenToCatalogus(4); AddKlantCatergorieParticulierEnReisbureau(); AddParticulierAndReisbureauToKlantenBestand(); Periode reservatiePeriode = new Periode("10/06/2019", "19/06/2019"); Klant particulier = RentAVillaRentingService.KlantenBestand.Find(kl => kl.Naam == "Lathouwers"); Pand pand = RentAVillaRentingService.HuurPanden.Find(p => p.Land == ActieveLanden.Frankrijk); int aantalPersonen = 6; Reservatie testReservatie = RentAVillaRentingService.ReservatieBuilder.MaakReservatie(pand, particulier, reservatiePeriode, aantalPersonen); RentAVillaRentingService.ReservatieBoek.Add(testReservatie); Assert.IsTrue(RentAVillaRentingService.ReservatieBoek.GetAll().Count == 1); Assert.IsTrue(!RentAVillaRentingService.ReservatieBoek.PandIsVrijVoorPeriode(pand, reservatiePeriode)); }
public static Pand GetTestPand(ActieveLanden actieveLand) { Pand p = PandBuilder .CreatePand("testpand") .MetLocation(actieveLand, GetRegio(), "TestPlaats") .MetPrijzen((SchoonmaakPrijs)GetRandomDoubleBetween(50, 150), (Waarborg)GetRandomDoubleBetween(500, 950), (PersoonsToeslagPerNacht)GetRandomDoubleBetween(10, 25)) .MetLimieten(GetRandomIntegerBetween(6, 15), GetRandomIntegerBetween(1, 6)) .Get(); p.TariefKalender = GetTariefKalender(); p.TarievenLijst = GetTestTarievenLijst(); return(p); }
public bool PandIsVrijVoorPeriode(Pand pand, Periode periode) { return(!_reservaties.Any(res => res.Pand == pand && res.ReservatiePeriode.Overlapt(periode))); }
public void NewPandCreated() { Pand = PandBuilder.CreatePand("testvilla").Get(); Assert.IsInstanceOfType(Pand, typeof(Pand)); }