public List <ProductItem> Search(OfferCriteria crit, int?aanbiedingId = null, int?vestigingId = null, Vestiging vestiging = null, int pageNr = 1, int pageSize = 5, List <int> propertyValues = null) { var list = QuerySearch(crit, aanbiedingId, vestigingId, vestiging, propertyValues); int total = list.Count(); return(list.ToList().Select(s => new ProductItem() { CamperAanbiedingModel = CamperAanbiedingModel.Parse(s.CamperAanbiedingModel, ""), PriceInfoModel = PriceInfoModel.Parse(s.PriceInfoModel), Total = total }).ToList()); }
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; } } } }