protected void DeleteClick(object sender, EventArgs e) { CustomerInfosDetails.IsDelete = true; _customerInfoRepository.Update(CustomerInfosDetails); _customerInfoRepository.ResetCache(); Response.Redirect(Constant.HotelList); }
protected void ConfirmButtonClick(object sender, EventArgs e) { if (string.IsNullOrEmpty(Password.Text)) { PasswordErrorMessage.Visible = true; PasswordErrorMessage.Text = ErrorMessage.EnterPassword; return; } if (Password.Text.Length < 7) { PasswordErrorMessage.Visible = true; PasswordErrorMessage.Text = ErrorMessage.PasswordNotValid; return; } if (Password.Text != PasswordConfirm.Text) { PasswordErrorMessage.Visible = true; PasswordErrorMessage.Text = ErrorMessage.ConfirmPasswordNotValid; return; } var customerInfo = Mapper.Map <CustomerInfos>(PublicCustomerInfos); if (customerInfo != null) { customerInfo.Password = Password.Text; customerInfo.IsConfirmed = true; _customerInfoRepository.Update(customerInfo); CustomerMV.ActiveViewIndex = 1; } }
/// <summary> /// 删除客户信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public bool Delete(Guid id) { var _session = HttpContext.Current.Session; if (int.Parse(_session["Authority"].ToString()) == 0) { var info = _customerInfoRepository.GetById(id); if (info != null) { info.Deleted = true; _customerInfoRepository.Update(info); return(true); } } return(false); }
protected void SaveButton_OnClick(object sender, EventArgs e) { if (string.IsNullOrEmpty(FirstNameText.Text) || string.IsNullOrEmpty(LastNameText.Text)) { MessageLabel.Visible = true; MessageLabel.CssClass = "error-message"; MessageLabel.Text = ErrorMessage.FailedToUpdated; return; } if (NewPasswordText.Text.Length > 0) { if (NewPasswordText.Text.Length < 7) { MessageLabel.Visible = true; MessageLabel.Text = ErrorMessage.PasswordNotValid; return; } if (!string.Equals(OldPasswordText.Text, _customerInfo.Password, StringComparison.Ordinal)) { MessageLabel.Visible = true; MessageLabel.Text = ErrorMessage.OldPasswordNotValid; return; } _customerInfo.Password = NewPasswordText.Text; } _customerInfo.FirstName = FirstNameText.Text.Trim(); _customerInfo.LastName = LastNameText.Text.Trim(); _customerInfoRepository.Update(_customerInfo); MessageLabel.Visible = true; FullNameHeader.InnerText = string.Format("{0} {1}", _customerInfo.FirstName, _customerInfo.LastName); MessageLabel.Text = ErrorMessage.SuccessfullyToUpdated; MessageLabel.CssClass = "success-message"; CacheLayer.Clear(CacheKeys.CustomerInfosCacheKey); }
protected void Page_Load(object sender, EventArgs e) { RestrictDate = DateTime.UtcNow.ToLosAngerlesTime(); if (RestrictDate > DateTime.UtcNow.ToLosAngerlesTime().Date.AddHours(19)) { RestrictDate = RestrictDate.AddDays(1); } // Search CallBack IsForceResetFilter = Request["__EVENTARGUMENT"] == "true" || !IsPostBack; List <Products> listProducts; if (!IsPostBack) { //// Check-In Date if (Session["SearchRange"] != null) { CheckInDateText.Text = Session["SearchRange"].ToString(); } } Initialize(); // Update new market if user search again var currentSession = Session["UserSession"]; SetCustomerInfo(currentSession); Session["marketId"] = MarketSearch.Id; TitleLiteral.Text = string.Format(Constant.SearchDocumentTitle, MarketSearch.LocationName, StrPassSearch); if (currentSession != null) { // Update new market if user search again if (PublicCustomerInfos != null && Request.Path != PublicCustomerInfos.BrowsePassUrl) { PublicCustomerInfos.BrowsePassUrl = string.Format(Constant.SearchPageWithCityUrl, MarketSearch.Permalink, Request.Url.Segments[Request.Url.Segments.Length - 1]); _customerInfoRepository.Update(PublicCustomerInfos); } // Invalid Session if (PublicCustomerInfos == null && Request.Params["sp"] == null) { Session["UserSession"] = null; Response.Redirect(Request.Url.AbsoluteUri); } } CurrentProductLabel.Text = MarketSearch.LocationName; var liTag = (HtmlGenericControl)CityDropdown.FindControl(MarketSearch.Permalink); if (liTag != null) { liTag.Attributes["class"] = "active"; } BindHotelSearch(out listProducts); if (!IsPostBack) { BindMetaHeader(listProducts); } }
private int PurchaseSubscription(out bool success) { // Check customer change their email success = true; bool isPayByCredit; var bookingExists = _subscriptionBookingRepository.GetBookingInLast3Minutes(PublicSubscription.Id, PublicCustomerInfos != null ? PublicCustomerInfos.EmailAddress : email.Text.Replace(" ", "")); if (bookingExists != null) { success = false; newBookingModal.Visible = true; return(bookingExists.Id); } if (PublicCustomerInfos == null) { PublicCustomerInfos = new CustomerInfos { EmailAddress = email.Text.Replace(" ", ""), FirstName = FirstName.Text.Trim(), LastName = LastName.Text.Trim(), ZipCode = txtzipcode.Text.Trim() }; // Create new account with email var response = _customerInfoRepository.GetVipAccess(email.Text.Replace(" ", ""), Constant.SearchPageDefault, FirstName.Text.Trim(), LastName.Text.Trim()); PublicCustomerInfos.CustomerId = response.CustomerId; PublicCustomerInfos.StripeCustomerId = response.StripeCustomerId; CacheLayer.Clear(CacheKeys.CustomerInfosCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditsCacheKey); Session["ReferralCode"] = response.ReferralCode; string searchPage = !string.IsNullOrEmpty((string)Session["SearchPage"]) ? Session["SearchPage"].ToString() : Constant.SearchPageDefault; // Send email new account var responseEmail = EmailHelper.EmailNewAccount(PublicCustomerInfos.EmailAddress, PublicCustomerInfos.FirstName, response.Password, Helper.ResolveRelativeToAbsoluteUrl(Request.Url, string.Format("{0}?sp={1}", searchPage, response.PasswordKey)), // Reset Password Url Helper.ResolveRelativeToAbsoluteUrl(Request.Url, string.Format("{0}?c={1}", searchPage, response.AccessKey))); // Browse Day Pass PublicCustomerCredits = _subscriptionBookingRepository.GetCustomerCredits(response.CustomerId); Session["UserSession"] = response.AccessKey; Session["IsRegister"] = true; Session["ReferralCode"] = response.ReferralCode; } Regex regex = new Regex(@"([\d]+)(\s)?/(\s)?([\d]+)"); int month; int year; int.TryParse(regex.Match(txtexpdat.Value).Groups[1].Value, out month); int.TryParse("20" + regex.Match(txtexpdat.Value).Groups[4].Value, out year); string fullName = string.Format("{0} {1}", FirstName.Text, LastName.Text); // Check customer has exists with email int customerId = PublicCustomerInfos.CustomerId; StripeCustomer stripeCustomer = null; Discounts discounts = new Discounts(); double actualPrice = PublicSubscription.Price; double totalPrice; bool hasCoupon = false; string stripeCouponId = string.Empty; // update user info with exists if (!string.IsNullOrEmpty(PublicCustomerInfos.StripeCustomerId)) { stripeCustomer = GetCustomerById(PublicCustomerInfos.StripeCustomerId); } // Use New Card if (MVCardInfo.ActiveViewIndex == 0) { StripeToken stripeToken = CreateToken(cctextbox.Text.Replace(" ", ""), year, month, txtzipcode.Text, fullName, txtseccode.Value); // update new card for customer PublicCustomerInfos.StripeTokenId = stripeToken.Id; PublicCustomerInfos.StripeCardId = stripeToken.StripeCard.Id; PublicCustomerInfos.BankAccountLast4 = stripeToken.StripeCard.Last4; PublicCustomerInfos.CardType = Helper.GetCreditCardType(cctextbox.Text.Replace(" ", "")); PublicCustomerInfos.ZipCode = txtzipcode.Text; if (stripeCustomer == null) { stripeCustomer = CreateCustomer(PublicCustomerInfos.EmailAddress, fullName, stripeToken.Id); PublicCustomerInfos.StripeCustomerId = stripeCustomer.Id; } else { // Update Stripe exists customer with New Card var card = CreateCard(stripeToken.Id, PublicCustomerInfos.StripeCustomerId); UpdateCustomer(PublicCustomerInfos.EmailAddress, fullName, PublicCustomerInfos.StripeCustomerId, card.Id); } _customerInfoRepository.Update(PublicCustomerInfos); isPayByCredit = IsPayByCreditCheckBox.Checked; } else { isPayByCredit = DCreditCheckBox.Checked; } if (string.IsNullOrWhiteSpace(PromoText.Text)) { Session.Remove(_discountKey); } // Not available upgrade so checkout with this hotel if (Session[_discountKey] != null) { discounts = JsonConvert.DeserializeObject <Discounts>(Session[_discountKey].ToString()); } // Have Discount if (discounts != null && discounts.Id > 0) { discounts = _discountRepository.VerifyDiscountsSubscription(discounts, customerId, PublicSubscription.Id); // Discount Invalid if (discounts != null) { actualPrice = Helper.CalculateDiscount(discounts, actualPrice, TotalTickets); hasCoupon = true; } else { InitDefaultPromo(Message.ExceedLimit, false); Session[_discountKey] = null; success = false; return(0); } if (discounts.BillingCycleNumber > 1) { stripeCouponId = string.Format("{0}C{1}", PublicCustomerInfos.CustomerId, Helper.RandomString(Constant.BookingCodeLength)); if (discounts.PercentOff > 0) { var couponPrice = PublicSubscription.Price - actualPrice; //Create the Coupon var coupon = new StripeCouponCreateOptions { Duration = "repeating", Id = stripeCouponId, MaxRedemptions = discounts.BillingCycleNumber, DurationInMonths = discounts.BillingCycleNumber }; if (discounts.PromoType == (int)Enums.PromoType.Fixed) { coupon.AmountOff = (int)(couponPrice * 100); coupon.Currency = "usd"; } if (discounts.PromoType == (int)Enums.PromoType.Percent) { coupon.PercentOff = (int)(discounts.PercentOff); } //coupon.AmountOff - AmountOff is not a property of StripeCouponCreateOptions var couponService = new StripeCouponService(); StripeCoupon createdCoupon = couponService.Create(coupon); //Apply it to the customer var customerOptions = new StripeCustomerUpdateOptions { Coupon = createdCoupon.Id }; var customerService = new StripeCustomerService(); customerService.Update(PublicCustomerInfos.StripeCustomerId, customerOptions); } } } if (PublicCustomerInfos.FirstName != FirstName.Text.Trim() || PublicCustomerInfos.LastName != LastName.Text.Trim()) { PublicCustomerInfos.FirstName = FirstName.Text.Trim(); PublicCustomerInfos.LastName = LastName.Text.Trim(); _customerInfoRepository.Update(PublicCustomerInfos); // Update Stripe exists customer UpdateCustomer(PublicCustomerInfos.EmailAddress, fullName, PublicCustomerInfos.StripeCustomerId, string.Empty); } // Discount 100% ?? // Price equal 0, so we should not charge with this totalPrice = actualPrice * TotalTickets; double chargePrice = totalPrice; string creditLogDescription = string.Empty; var subscriptionOptions = new StripeSubscriptionCreateOptions { PlanId = PublicSubscription.StripePlanId }; // Use DayAxe Credit if (isPayByCredit && PublicCustomerCredits != null && PublicCustomerCredits.Amount > 0) { hasCoupon = true; chargePrice = totalPrice - PublicCustomerCredits.Amount; if (chargePrice <= 0) { chargePrice = 0; } } if (hasCoupon && string.IsNullOrEmpty(stripeCouponId)) { var couponPrice = PublicSubscription.Price - chargePrice; if (couponPrice > 0) { // Create Coupon Id because we used DayAxe Credit stripeCouponId = string.Format("{0}C{1}", PublicCustomerInfos.CustomerId, Helper.RandomString(Constant.BookingCodeLength)); var couponOptions = new StripeCouponCreateOptions { Id = stripeCouponId, AmountOff = Convert.ToInt32(couponPrice * 100), // USD Duration = "once", Currency = "USD" }; // Create Coupon var couponService = new StripeCouponService(); var coupon = couponService.Create(couponOptions); subscriptionOptions.CouponId = stripeCouponId; creditLogDescription = string.Format("{0} – {1}", PublicSubscription.Name, coupon.Id); } } // Create Subscription on Stripe var subscriptionService = new StripeSubscriptionService(); StripeSubscription subscription = subscriptionService.Create(PublicCustomerInfos.StripeCustomerId, subscriptionOptions); var booking = new SubscriptionBookings { SubscriptionId = PublicSubscription.Id, Quantity = TotalTickets, StripeCouponId = stripeCouponId, BookedDate = DateTime.UtcNow, ActivedDate = subscription.Start, StartDate = subscription.CurrentPeriodStart, EndDate = subscription.CurrentPeriodEnd, Status = (int)Enums.SubscriptionBookingStatus.Active, CustomerId = customerId, LastUpdatedDate = DateTime.UtcNow, LastUpdatedBy = customerId, StripeSubscriptionId = subscription.Id }; var param = new AddSubscriptionBookingParams { SubscriptionBookingsObject = booking, CustomerCreditsObject = PublicCustomerCredits, Description = creditLogDescription, SubscriptionName = PublicSubscription.Name, FirstName = PublicCustomerInfos.FirstName, LastName = PublicCustomerInfos.LastName, SubscriptionBookingDiscounts = discounts, ActualPrice = actualPrice, MerchantPrice = PublicSubscription.Price, PayByCredit = totalPrice.Equals(chargePrice) ? 0 : totalPrice - chargePrice, TotalPrice = chargePrice, MaxPurchases = PublicSubscription.MaxPurchases }; int bookingId = _subscriptionBookingRepository.Add(param); //Session.Remove(_discountKey); CacheLayer.Clear(CacheKeys.SubscriptionBookingsCacheKey); CacheLayer.Clear(CacheKeys.CustomerInfosCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditsCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditLogsCacheKey); CacheLayer.Clear(CacheKeys.DiscountsCacheKey); CacheLayer.Clear(CacheKeys.SubscriptionBookingDiscountsCacheKey); CacheLayer.Clear(CacheKeys.SubsciptionDiscountUsedCacheKey); CacheLayer.Clear(CacheKeys.SubscriptionDiscountsCacheKey); CacheLayer.Clear(CacheKeys.SubscriptionCyclesCacheKey); return(bookingId); }
private int PurchaseGiftCard(out bool success) { // Check customer change their email success = true; bool isPayByCredit; if (PublicCustomerInfos == null) { PublicCustomerInfos = new CustomerInfos { EmailAddress = email.Text.Replace(" ", ""), FirstName = FirstName.Text.Trim(), LastName = LastName.Text.Trim(), ZipCode = txtzipcode.Text.Trim() }; // Create new account with email var response = _customerInfoRepository.GetVipAccess(email.Text.Replace(" ", ""), Constant.SearchPageDefault, FirstName.Text.Trim(), LastName.Text.Trim()); PublicCustomerInfos.CustomerId = response.CustomerId; PublicCustomerInfos.StripeCustomerId = response.StripeCustomerId; CacheLayer.Clear(CacheKeys.CustomerInfosCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditsCacheKey); Session["ReferralCode"] = response.ReferralCode; string searchPage = !string.IsNullOrEmpty((string)Session["SearchPage"]) ? Session["SearchPage"].ToString() : Constant.SearchPageDefault; // Send email new account var responseEmail = EmailHelper.EmailNewAccount(PublicCustomerInfos.EmailAddress, PublicCustomerInfos.FirstName, response.Password, Helper.ResolveRelativeToAbsoluteUrl(Request.Url, string.Format("{0}?sp={1}", searchPage, response.PasswordKey)), // Reset Password Url Helper.ResolveRelativeToAbsoluteUrl(Request.Url, string.Format("{0}?c={1}", searchPage, response.AccessKey))); // Browse Day Pass PublicCustomerCredits = _customerInfoRepository.GetCustomerCredits(response.CustomerId); Session["UserSession"] = response.AccessKey; Session["IsRegister"] = true; Session["ReferralCode"] = response.ReferralCode; } Regex regex = new Regex(@"([\d]+)(\s)?/(\s)?([\d]+)"); int month; int.TryParse(regex.Match(txtexpdat.Value).Groups[1].Value, out month); int year; int.TryParse("20" + regex.Match(txtexpdat.Value).Groups[4].Value, out year); string fullName = string.Format("{0} {1}", FirstName.Text, LastName.Text); // Check customer has exists with email StripeCustomer stripeCustomer = null; //var discounts = new Discounts(); double actualPrice; // update user info with exists if (!string.IsNullOrEmpty(PublicCustomerInfos.StripeCustomerId)) { stripeCustomer = GetCustomerById(PublicCustomerInfos.StripeCustomerId); } // Use New Card if (MVCardInfo.ActiveViewIndex == 0) { StripeToken stripeToken = CreateToken(cctextbox.Text.Replace(" ", ""), year, month, txtzipcode.Text, fullName, txtseccode.Value); // update new card for customer PublicCustomerInfos.StripeTokenId = stripeToken.Id; PublicCustomerInfos.StripeCardId = stripeToken.StripeCard.Id; PublicCustomerInfos.BankAccountLast4 = stripeToken.StripeCard.Last4; PublicCustomerInfos.CardType = Helper.GetCreditCardType(cctextbox.Text.Replace(" ", "")); PublicCustomerInfos.ZipCode = txtzipcode.Text; if (stripeCustomer == null) { stripeCustomer = CreateCustomer(PublicCustomerInfos.EmailAddress, fullName, stripeToken.Id); PublicCustomerInfos.StripeCustomerId = stripeCustomer.Id; } else { // Update Stripe exists customer with New Card var card = CreateCard(stripeToken.Id, PublicCustomerInfos.StripeCustomerId); UpdateCustomer(PublicCustomerInfos.EmailAddress, fullName, PublicCustomerInfos.StripeCustomerId, card.Id); } _customerInfoRepository.Update(PublicCustomerInfos); isPayByCredit = IsPayByCreditCheckBox.Checked; } else { isPayByCredit = DCreditCheckBox.Checked; } if (PublicCustomerInfos.FirstName != FirstName.Text.Trim() || PublicCustomerInfos.LastName != LastName.Text.Trim()) { PublicCustomerInfos.FirstName = FirstName.Text.Trim(); PublicCustomerInfos.LastName = LastName.Text.Trim(); _customerInfoRepository.Update(PublicCustomerInfos); // Update Stripe exists customer stripeCustomer = UpdateCustomer(PublicCustomerInfos.EmailAddress, fullName, PublicCustomerInfos.StripeCustomerId, string.Empty); } // Discount 100% ?? // Price equal 0, so we should not charge with this double.TryParse(ValueText.Text, out actualPrice); double chargePrice = actualPrice; string creditLogDescription = string.Format("eGift Cards – {0}", Helper.FormatPrice(actualPrice * -1)); DateTime deliveryDate; string stripeChargeId = string.Empty; // Use DayAxe Credit if (isPayByCredit && PublicCustomerCredits != null && PublicCustomerCredits.Amount > 0) { // Create Coupon Id because we used DayAxe Credit chargePrice = actualPrice - PublicCustomerCredits.Amount; if (chargePrice <= 0) { chargePrice = 0; } } if (chargePrice > 0) { StripeCharge stripeCharge = CreateCharges(chargePrice, stripeCustomer.Id, creditLogDescription); stripeChargeId = stripeCharge.Id; } DateTime.TryParseExact(DeliveryDateText.Text, "MM/dd/yyyy", null, DateTimeStyles.None, out deliveryDate); double userBookedDate; double.TryParse(HidUserBookedDate.Value, out userBookedDate); var param = new GiftCardBookings { CustomerId = PublicCustomerInfos.CustomerId, GiftCardId = 0, Price = chargePrice, PayByCredit = actualPrice - chargePrice, TotalPrice = actualPrice, StripeChargeId = stripeChargeId, BookedDate = DateTime.UtcNow, RecipientEmail = ToText.Text.Trim(), RecipientName = NameText.Text.Trim(), Message = !string.IsNullOrEmpty(MessageText.Text) ? MessageText.Text : "Enjoy the gift of DayAxe from me!", DeliveryDate = deliveryDate.Date.AddHours(9 + 5), // 9AM + EST = 5 hours Description = creditLogDescription, LastUpdatedBy = PublicCustomerInfos.CustomerId, LastUpdatedDate = DateTime.UtcNow, UserBookedDate = userBookedDate }; int giftCardBooking = _giftCardBookingRepository.Add(param); CacheLayer.Clear(CacheKeys.GiftCardCacheKey); CacheLayer.Clear(CacheKeys.GiftCardBookingCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditsCacheKey); CacheLayer.Clear(CacheKeys.CustomerCreditLogsCacheKey); return(giftCardBooking); }