public FlightBookingModel BindSearchCookies(FlightBookingModel model, UserSearchFHCookiesModel cookie) { if (cookie != null) { model.SearchFlightResultViewModel = new SearchFlightResultViewModel() { DepartureStation = cookie.From, ArrivalStation = cookie.Destination, BeginDate = cookie.ArrivalDate.Value.ToLocalTime(), EndDate = cookie.DepartureDate.Value.ToLocalTime(), Adults = cookie.AdultNo, Childrens = cookie.ChildrenNo, Infants = cookie.InfantNo, PrefferedAirlineCode = cookie.PrefferedAirlineCode, NoOfRoom = cookie.RoomNo, CabinClass = cookie.CabinClass, TripType = cookie.TripType }; } return(model); }
public ActionResult Index(string errorMsg) { int dayAdvance = Convert.ToInt32(Core.GetSettingValue("dayadvance")); FlightBookingModel model = Session["FlightBooking"] == null ? null : (FlightBookingModel)Session["FlightBooking"]; int userid = 0; if (Request.IsAuthenticated && Core.EnableCMS) { return(RedirectToAction("RedirectAndPOST", "DynamicFormPostSurface", new { destinationUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["AlphaReds.CMSUrl"], type = "SessionTransfer" })); } else if (Core.EnableCMS) { string CMSUrl = Core.GetAppSettingValueEnhanced("AlphaReds.CMSUrl"); string landingPageUrl = string.IsNullOrWhiteSpace(CMSUrl) ? "https://www.mayflower.com.my/" : CMSUrl; UriBuilder builder = new UriBuilder(landingPageUrl); var query = HttpUtility.ParseQueryString(builder.Query); if (Request.QueryString != null && Request.QueryString.Count > 0) { foreach (var item in Request.QueryString) { query[item.ToString()] = Request.QueryString[item.ToString()]; } } builder.Query = query.ToString(); Response.Redirect(builder.ToString()); } /*else if (User.Identity.IsAuthenticated) * { * if (model == null) * { * userid = Convert.ToInt32(User.Identity.Name); * //model = HomeServiceController.getHomeModelWhenIsUserLogin(userid, dayAdvance); * } * }*/ // Initialize for Anonymous user //start validate model = Alphareds.Module.Public.Flight.Helper.GetHomeModelAnonymousUser(model, dayAdvance); List <UserSearchFHCookiesModel> UserCookies = new List <UserSearchFHCookiesModel>(); UserSearchFHCookiesModel LatestFlightCookie = new UserSearchFHCookiesModel(); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); string trackingUserSearchCookiesList; string encryptCookies; if (Request.Cookies["SaveUserCookies"] != null) { encryptCookies = Request.Cookies["SaveUserCookies"].Value; trackingUserSearchCookiesList = Cryptography.AES.Decrypt(encryptCookies); UserCookies = jsSerializer.Deserialize <List <UserSearchFHCookiesModel> >(trackingUserSearchCookiesList).ToList(); LatestFlightCookie = UserCookies.LastOrDefault(x => x.ProductType == "flight"); if (LatestFlightCookie != null) { if (LatestFlightCookie.ArrivalDate.HasValue && LatestFlightCookie.ArrivalDate.Value.ToLocalTime().AddDays(1) < DateTime.Now.AddDays(dayAdvance)) { LatestFlightCookie = null; } if (LatestFlightCookie != null) { model = BindSearchCookies(model, LatestFlightCookie); } } } var locationList = Alphareds.Module.ServiceCall.CarsRentalServiceCall.GetBranchList(); ViewBag.locationList = locationList; return(View(model)); }
public void AddFlightSearchCookie(SearchFlightResultViewModel model) { List <UserSearchFHCookiesModel> _userCookies = new List <UserSearchFHCookiesModel>(); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); string trackingUserSearchCookiesList; string encryptedCookies; if (Request.Cookies["SaveUserCookies"] != null) { encryptedCookies = Request.Cookies["SaveUserCookies"].Value; trackingUserSearchCookiesList = Cryptography.AES.Decrypt(encryptedCookies); _userCookies = jsSerializer.Deserialize <List <UserSearchFHCookiesModel> >(trackingUserSearchCookiesList).ToList(); } UserSearchFHCookiesModel addUserSearchFlightCookies = new UserSearchFHCookiesModel() { From = model.DepartureStation, Destination = model.ArrivalStation, ArrivalDate = model.BeginDate, DepartureDate = model.EndDate, AdultNo = model.Adults, ChildrenNo = model.Childrens, InfantNo = model.Infants, PrefferedAirlineCode = model.PrefferedAirlineCode, RoomNo = model.NoOfRoom, TripType = model.TripType, CabinClass = model.CabinClass, ProductType = "flight" }; UserSearchFHCookiesModel checkUserSearchFlightCookies = new UserSearchFHCookiesModel(); bool sameWithLast = false; if (_userCookies != null) { checkUserSearchFlightCookies = _userCookies.LastOrDefault(x => x.ProductType == "flight"); if (checkUserSearchFlightCookies != null) { if (checkUserSearchFlightCookies.Destination == addUserSearchFlightCookies.Destination && checkUserSearchFlightCookies.From == addUserSearchFlightCookies.From && ((checkUserSearchFlightCookies.DepartureDate.HasValue && addUserSearchFlightCookies.DepartureDate.HasValue && checkUserSearchFlightCookies.DepartureDate.Value.ToLocalTime() == addUserSearchFlightCookies.DepartureDate.Value) || (!checkUserSearchFlightCookies.DepartureDate.HasValue && !addUserSearchFlightCookies.DepartureDate.HasValue)) && ((checkUserSearchFlightCookies.ArrivalDate.HasValue && addUserSearchFlightCookies.ArrivalDate.HasValue && checkUserSearchFlightCookies.ArrivalDate.Value.ToLocalTime() == addUserSearchFlightCookies.ArrivalDate.Value) || (!checkUserSearchFlightCookies.ArrivalDate.HasValue && !addUserSearchFlightCookies.ArrivalDate.HasValue)) && checkUserSearchFlightCookies.AdultNo == addUserSearchFlightCookies.AdultNo && checkUserSearchFlightCookies.ChildrenNo == addUserSearchFlightCookies.ChildrenNo && checkUserSearchFlightCookies.InfantNo == addUserSearchFlightCookies.InfantNo && checkUserSearchFlightCookies.ChildrenNo == addUserSearchFlightCookies.ChildrenNo && checkUserSearchFlightCookies.PrefferedAirlineCode == addUserSearchFlightCookies.PrefferedAirlineCode && checkUserSearchFlightCookies.TripType == addUserSearchFlightCookies.TripType && checkUserSearchFlightCookies.CabinClass == addUserSearchFlightCookies.CabinClass) { sameWithLast = true; } } } //if same with last dont add if (!sameWithLast) { _userCookies.Add(addUserSearchFlightCookies); } if (_userCookies.Where(x => x.ProductType == "flight").Count() > 2) { var removeOldCookie = _userCookies.First(x => x.ProductType == "flight"); _userCookies.Remove(removeOldCookie); } string SerializeUserCookies = jsSerializer.Serialize(_userCookies); string encryptSerializeUserCookies = Cryptography.AES.Encrypt(SerializeUserCookies); var UserCookie = new System.Web.HttpCookie("SaveUserCookies", encryptSerializeUserCookies) { Expires = DateTime.Now.AddDays(15) }; HttpContext.Response.Cookies.Add(UserCookie); }