Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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;
                    }
                }
            }
        }