public async Task <OTA_VehAvailRateMoreRS> GetCarRentalListFromSearchInfo(ProductCarRental.SearchCriteria model)
 {
     return(await Task <OTA_VehAvailRateMoreRS> .Factory.StartNew(() =>
     {
         return CarsRentalServiceCall.GetCarRentalList(model);
     }));
 }
        public ActionResult GetCarRentalSearch(ProductCarRental.SearchCriteria model)
        {
            string tripid = Guid.NewGuid().ToString();

            if (Request.Form["locationCodeCMS"] != null)
            {
                model.locationCode   = Request.Form["locationCodeCMS"] == null ? null : Request.Form["locationCodeCMS"].ToString();
                model.PickupDateTime = DateTime.ParseExact(Request.Form["PickupDateTimeCMS"].ToString(), "dd-MMM-yyyy h:mm:ss tt", null);
                model.ReturnDateTime = DateTime.ParseExact(Request.Form["ReturnDateTimeCMS"].ToString(), "dd-MMM-yyyy h:mm:ss tt", null);
            }
            model.PickupDateTime = model.PickupDateTime == DateTime.MinValue ? DateTime.Now.AddDays(1) : model.PickupDateTime;
            model.ReturnDateTime = model.ReturnDateTime == DateTime.MinValue ? DateTime.Now.AddDays(2) : model.ReturnDateTime;
            model.RentalPeriod   = model.PickupDateTime.ToString("M/dd") + " - " + model.ReturnDateTime.ToString("M/dd");
            Core.SetSession(Enumeration.SessionName.CarRentalSearchReq, tripid, model);
            return(RedirectToAction("Search", "CarRental", new { tripid }));
        }
        public ActionResult Search(ProductCarRental.SearchCriteria model)
        {
            model = model ?? new ProductCarRental.SearchCriteria();
            FilterHotelResultModel filterResult = new FilterHotelResultModel();

            if (Core.GetSession(Enumeration.SessionName.CarRentalSearchReq, tripid) != null)
            {
                model = (ProductCarRental.SearchCriteria)Core.GetSession(Enumeration.SessionName.CarRentalSearchReq, tripid);
            }
            else if (model.PickupDateTime != DateTime.MinValue && model.ReturnDateTime != DateTime.MinValue && Core.GetSession(Enumeration.SessionName.CarRentalSearchReq, tripid) == null)
            {
                Core.SetSession(Enumeration.SessionName.CarRentalSearchReq, tripid, model);
            }
            else
            {
                // GO
                model.PickupDateTime = DateTime.Now.AddDays(double.Parse(Core.GetSettingValue("dayadvance")));
                // RETURN
                model.ReturnDateTime = model.PickupDateTime.AddDays(1);
            }

            #region If error from Reserve, show message.
            if (Core.GetSession(Enumeration.SessionName.ErrorMessage) != null)
            {
                ViewData.Add("ERRMSG", Core.GetSession(Enumeration.SessionName.ErrorMessage).ToString());
                Core.SetSession(Enumeration.SessionName.ErrorMessage, null);
            }
            #endregion

            CheckoutProduct checkoutmodel = new CheckoutProduct();
            if (Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid) != null)
            {
                checkoutmodel = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid);
            }
            if (checkoutmodel.CarRental == null)
            {
                checkoutmodel.InsertProduct(new ProductCarRental
                {
                    SearchInfo = model,
                });
                Core.SetSession(Enumeration.SessionName.CheckoutProduct, tripid, checkoutmodel);
            }
            var locationList = CarsRentalServiceCall.GetBranchList();
            ViewBag.locationList = locationList;
            return(View(checkoutmodel));
        }
        private MarkupInfo GetMarkup(ProductCarRental.SearchCriteria model)
        {
            MayFlower  db        = new MayFlower();
            var        markup    = db.MarkupCarRentals.FirstOrDefault(x => x.IsActive && x.BookingDateFrom <= DateTime.Now && x.BookingDateTo >= DateTime.Now && x.TravelDateFrom <= model.PickupDateTime && x.TravelDateTo >= model.ReturnDateTime);
            MarkupInfo markupDtl = new MarkupInfo();

            if (markup != null)
            {
                markupDtl = new MarkupInfo()
                {
                    MarkupID              = markup.MarkupCarRentalID,
                    DiscountOrMarkup      = markup.DiscountOrMarkup,
                    MarkupPricingTypeCode = markup.MarkupPricingTypeCode
                };
            }
            return(markupDtl);
        }