public ActionResult Checkout2(SearchCamperModel options) { if (BookingData == null || BookingData.OfferCriteria == null || BookingData.OfferCriteria.Busjetype == 0 || (BookingData.CamperAanbiedingModel == null && IsGet)) { return(RedirectToAction("Index", "Home")); } ViewBag.BookingData = BookingData; BookingData.Gegevens = BookingData.Gegevens ?? new Busjehuren.Core.Models.BookingData.MyGegevens(); var model = new Checkout2VM(); model.LandBestemming = BookingData.Gegevens.LandBestemming; if (IsPost) { if (options.vestigingId == 0 || options.aanbiedingId == 0 || options.vestigingTerugbrengId == 0) { return(RedirectToAction("Index", "Home")); } BookingData.Step2 = true; _checkOutService.SetBookingData(options, BookingData); return(View(model)); } return(View(model)); }
public void SetBookingData(SearchCamperModel options, BookingData bookingData) { int camperAanbiedingId = options.aanbiedingId; int vestigingsId = options.vestigingId; int vestigingTerugbrengId = options.vestigingTerugbrengId; var typeId = options.typeId; bookingData.BookingType = (BookingType)Enum.ToObject(typeof(BookingType), typeId); if (camperAanbiedingId == 0 || vestigingsId == 0) { if (bookingData.LastSelectedCamper.CamperID != 0) { camperAanbiedingId = bookingData.LastSelectedCamper.CamperID; vestigingsId = bookingData.LastSelectedCamper.LocationID; } } else { bookingData.LastSelectedCamper = new CamperLocation { CamperID = camperAanbiedingId, LocationID = vestigingsId }; } var camperAanbieding = _unitOfWork.CamperAanbiedingRepository.Find(camperAanbiedingId); var vestiging = _unitOfWork.VestigingRepository.Find(vestigingsId); var vestigingTerugbreng = _unitOfWork.VestigingRepository.Find(vestigingTerugbrengId); if (camperAanbieding != null && vestiging != null && bookingData.OfferCriteria != null) { bookingData.CamperAanbiedingModel = CamperAanbiedingModel.Parse(camperAanbieding, ""); bookingData.VestigingModel = VestigingModel.Parse(new OptionParseVestigingModels() { vestigingEntity = vestiging }); //_mapper.Map<VestigingModel>(vestiging); bookingData.VestigingModel.Pakkets = bookingData.VestigingModel.Pakkets .GroupBy(x => x.Naam) .Select(x => x.FirstOrDefault(p => bookingData.NumberOfTravelDays >= p.MinAantalDagen && bookingData.NumberOfTravelDays <= p.MaxAantalDagen) ?? x.First()) .ToList(); bookingData.VestigingTerugbrengModel = VestigingModel.Parse(new OptionParseVestigingModels() { vestigingEntity = vestigingTerugbreng }); //_mapper.Map<VestigingModel>(vestigingTerugbreng); bookingData.OfferCriteria.ZoekBestemmingId = vestiging.Destination.ParentId.GetValueOrDefault(vestiging.Destination.Id); var aanbiedingen = _productService.Search(bookingData.OfferCriteria, camperAanbiedingId, vestigingsId, vestiging, bookingData.OfferCriteria.PageNr, bookingData.OfferCriteria.PageSize); if (aanbiedingen.Count != 0) { bookingData.TotalCamperPrice = aanbiedingen.First().PriceInfoModel.TotaalPakketPrijs; } var ophaalParentId = bookingData.VestigingModel.Destination.ParentId; if (ophaalParentId != null) { var bestemmingen = _unitOfWork.DestinationRepository.FindAll(x => x.ParentId == ophaalParentId).ToList(); bookingData.Destinations = ConvertToDestinationModels(bestemmingen); } var terugbrengParentId = bookingData.VestigingTerugbrengModel.Destination.ParentId; if (terugbrengParentId != null && terugbrengParentId != ophaalParentId) { var bestemmingen = _unitOfWork.DestinationRepository.FindAll(x => x.ParentId == terugbrengParentId).ToList(); bookingData.Destinations.AddRange(ConvertToDestinationModels(bestemmingen)); bookingData.Destinations = bookingData.Destinations.Distinct().ToList(); } foreach (var p in bookingData.VestigingModel.Pakkets) { p.Number = 1; if (p.IsGratis && (DateTime)p.GratisTot >= bookingData.EndDate && (DateTime)p.GratisVan <= bookingData.StartDate) { p.Prijs = 0; } } } }