public void ApplyCoupon(string coupon) { CouponCode.SetText(coupon); ApplyCouponButton.Click(); MessageAlert.ToHasContent().ToBeVisible().WaitToBe(); MessageAlert.ValidateInnerTextIs(CouponSuccessfullyAdded); }
public async Task <ActionResult <CouponCode> > PostCouponCode(CouponCode couponCode) { _context.CouponCode.Add(couponCode); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCouponCode", new { id = couponCode.Id }, couponCode)); }
public void valid(string code) { var cc = new CouponCode(code); Assert.Equal(code, cc.Value); Assert.Equal(code, cc.ToString()); }
public async Task <IActionResult> ApplyCoupon(string couponCode) { try { if (string.IsNullOrEmpty(couponCode)) { ModelState.AddModelError("", "Please enter coupon code to continue"); } else { CouponCode cp = await couponDAL.FindCouponByCodeAsync(couponCode); if (cp == null) // if coupon code is not found or outdated { ModelState.AddModelError("", "Coupon Code " + couponCode.ToUpper() + " is not existed or out of date"); // if there was old coupon code, leave it remain in cart } else { cart.ApplyCoupon(couponCode); } } return(RedirectToAction(nameof(Index))); } catch (Exception ex) { logger.Error(ex.Message); throw; } }
public async Task <IActionResult> PutCouponCode(int id, CouponCode couponCode) { if (id != couponCode.Id) { return(BadRequest()); } _context.Entry(couponCode).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CouponCodeExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private static void ProcessEachForRigister(Coupon master) { //获取注册未发放优惠券的顾客 (实时发)5分钟一次,造优惠券,发给顾客 string userType = "R"; List <Customer> customerList = CouponDA.GetRegisterUser(userType, master);//获取注册未发放优惠券的顾客 if (customerList == null || customerList.Count <= 0) { WriteLog("没能查询到符合条件的用户"); return; } WriteLog("查询到新注册的用户" + customerList.Count + "个"); master.BindStatus = "S";//字段 CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerList) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; codeEntity.CodeType = "C"; codeEntity.CustomerMaxFrequency = 1; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); #region sendMail MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@InDate", DateTime.Now.ToString("yyyy-MM-dd")) .Replace("@CustomerHello@", customer.CustomerID) .Replace("@CouponCode@", codeEntity.Code) .Replace("@nums@", "1") .Replace("@EndDateStr@", codeEntity.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } #endregion num++; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "注册送优惠券成功发送" + num + "个顾客,分别是:\r\n" + userList); }
public void ConvertToEntity_CouponCodeNotNull_ReturnSameProducts() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(input.Products, couponCode.Products); }
public void ConvertToEntity_CouponCodeNotNull_ReturnSameMinAmount() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(input.MinAmount, couponCode.MinAmount); }
public void ConvertToEntity_CouponCodeNotNull_ReturnEmplyId() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(Guid.Empty, couponCode.Id); }
public void ConvertToEntity_CouponCodeNotNull_ReturnSameCDateStart() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(input.DateStart, couponCode.DateStart); }
public void ConvertToEntity_CouponCodeNotNull_ReturnSameCode() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(input.Code.ToUpper(), couponCode.Code); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameSubCategories() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.SubCategories, couponCodeDto.SubCategories); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameDateExpire() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.DateExpire, couponCodeDto.DateExpire); }
public async Task <ActionResult> Edit(CouponCode cp) { if (ModelState.IsValid) { var model = await m_couponCodeManager.UpdateAsync(cp); } return(RedirectToAction("Index", "CouponCodeAdmin")); }
public async Task <CouponCode> CreateAsync(CouponCode couponCode) { await this.couponCodeRepository.AddAsync(couponCode); await this.couponCodeRepository.SaveChangesAsync(); return(couponCode); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameMinAmount() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.MinAmount, couponCodeDto.MinAmount); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameProducts() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.Products, couponCodeDto.Products); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameId() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.Id, couponCodeDto.Id); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameCDateStart() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.DateStart, couponCodeDto.DateStart); }
public void ConvertToEntity_CouponCodeNotNull_ReturnSameSubCategories() { CreateCouponCodeInput input = MockCreateCouponCodeInput(); CouponCode couponCode = input.ConvertToEntity(); Assert.Equal(input.SubCategories, couponCode.SubCategories); }
public void ConvertToDto_CouponCodeNotNull_ReturnSameCustomers() { CouponCode couponCode = MockCouponCode(); CouponCodeDto couponCodeDto = couponCode.ConvertToDto(); Assert.Equal(couponCode.Customers, couponCodeDto.Customers); }
private static void ProcessEachForTBVip_Old(Coupon master) { string userType = "Z"; //触发条件 master.BindStatus = "S"; //发放状态 List <Customer> customerList = CouponDA.GetAlipayCustomer(userType, master);//获取未发放优惠券的顾客 WriteLog("获取用户数" + customerList.Count + "个"); if (customerList.Count <= 0) { WriteLog("没有找到符合条件的支付宝金账户"); } else { using (TransactionScope ts = new TransactionScope()) { string message = string.Format("({0}){1} -- ", master.SysNo, master.CouponName); //通用型优惠券代码 CouponCode code = CouponDA.QueryBindingCode(master); CouponDA.UpdateBindRulesStatus(master); int index = 0; string userList = string.Empty; CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = code.Code; logEntity.CouponSysNo = master.SysNo; MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; foreach (Customer customer in customerList) { logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@Title@", master.CouponName) .Replace("@CustomerHello@", "您好,感谢您对大昌优品的支持。") .Replace("@CouponCode@", code.Code) .Replace("@nums@", code.CustomerMaxFrequency.ToString()) .Replace("@EndDateStr@", code.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } ++index; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "支付宝金账户优惠券成功发送" + index + "个顾客,分别是:\r\n" + userList); ts.Complete(); } } }
/// <summary> /// 支付宝金账户发放优惠券 /// </summary> /// <param name="item"></param> private static void ProcessEachForTBVip(Coupon master) { string userType = "Z"; //触发条件 master.BindStatus = "S"; //发放状态 List <Customer> customerList = null; customerList = CouponDA.GetAlipayCustomer(userType, master);//获取未发放优惠券的顾客 if (customerList.Count <= 0) { WriteLog("没有找到符合条件的支付宝金账户"); return; } //更新绑定状态为S CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerList) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); #region sendMail MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@InDate", DateTime.Now.ToString("yyyy-MM-dd")) .Replace("@CustomerHello@", customer.CustomerID) .Replace("@CouponCode@", codeEntity.Code) .Replace("@nums@", "1") .Replace("@EndDateStr@", codeEntity.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } #endregion num++; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "支付宝金账户送优惠券成功发送" + num + "个顾客,分别是:\r\n" + userList); }
/// <summary> /// Returns a hash code for this instance. /// </summary> /// <returns> /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. /// </returns> public override int GetHashCode() { unchecked { int hashCode = CouponCode.GetHashCode(); hashCode = (hashCode * 397) ^ DiscountId; return(hashCode); } }
// 3. These elements are always used together when coupon is applied. There are many test cases where you need to apply different coupons and so on. // This way you reuse the code instead of copy-paste it. If there is a change in the way how the coupon is applied, change the workflow only here. // Even single line of code is changed in your tests. public void ApplyCoupon(string coupon) { CouponCode.SetText(coupon); ApplyCouponButton.Click(); MessageAlert.ToHasContent().ToBeVisible().WaitToBe(); // Usually, it is not entirely correct to make assertions inside action methods. However, Validate methods are just waiting for something to happen. MessageAlert.ValidateInnerTextIs(CouponSuccessfullyAdded); }
public void UpdateSimplePropertiesTo(Promotion promotion) { promotion.Name = Name.Trim(); promotion.StartTimeUtc = StartTime == null ? null : (DateTime?)StartTime.Value.ToUniversalTime(); promotion.EndTimeUtc = EndTime == null ? null : (DateTime?)EndTime.Value.ToUniversalTime(); promotion.RequireCouponCode = RequireCouponCode; promotion.CouponCode = CouponCode.TrimOrNull(); promotion.Priority = Priority; promotion.PromotionPolicyName = PromotionPolicy; promotion.OverlappingUsage = OverlappingUsage; }
public static void CreateCouponCode(CouponCode info, string username) { DataCommand cmd = DataCommandManager.GetDataCommand("CreateCouponCode"); cmd.SetParameterValue("@CouponSysNo", info.CouponSysNo); cmd.SetParameterValue("@CouponCode", info.Code); cmd.SetParameterValue("@CustomerMaxFrequency", info.CustomerMaxFrequency); cmd.SetParameterValue("@TotalCount", info.TotalCount); cmd.SetParameterValue("@InUser", username); cmd.ExecuteNonQuery(); }
public async Task <IActionResult> Index() { try { CouponCode cp = null; if (!string.IsNullOrEmpty(cart.Coupon?.Code)) // check if cart contains coupon code { cp = await couponDAL.FindCouponByCodeAsync(cart.Coupon.Code); if (cp == null) // if coupon code is not found or outdated { ModelState.AddModelError("", "Coupon Code " + cart.Coupon.Code.ToUpper() + " is not existed or out of date"); cart.RemoveCoupon(); // remove coupon code from cart } else { cart.Coupon = cp; } } if (cart.Lines.Count() > 0) { foreach (CartLine cartLine in cart.Lines) { Tour tour = await tourDAL.FindTourByTourIdAsync(cartLine.Tour.Id); //find tour which is active if (tour == null || tour.FromDate < DateTime.Now) { ModelState.AddModelError("", "Tour " + cartLine.Tour.Id.ToUpper() + " is not existed or available"); } else { cartLine.Tour = tour; cartLine.Tour.TakenSlot = await tourDAL.GetTakenSlotByTourIdAsync(cartLine.Tour.Id); if ((cartLine.AdultTicket + cartLine.KidTicket) > (cartLine.Tour.MaxGuest - cartLine.Tour.TakenSlot)) { ModelState.AddModelError("", "Not enough tickets of tour " + cartLine.Tour.Id.ToUpper()); } } } } CartViewModel model = new CartViewModel { Cart = cart }; return(View(model)); } catch (Exception ex) { logger.Error(ex.Message); throw; } }
public async Task AddCouponCode(CouponCode code) { try { await _context.CouponCodes.InsertOneAsync(code); } catch (Exception ex) { // log or manage the exception throw ex; } }
/// <summary> /// 插入优惠券码 /// </summary> /// <param name="entity"></param> /// <returns></returns> public static int InsertCouponCode(int customerSysNo, CouponCode entity) { DataCommand command = DataCommandManager.GetDataCommand("Coupon_InsertCouponCode"); command.SetParameterValue("@CouponSysNo", entity.CouponSysNo); command.SetParameterValue("@CouponCode", entity.Code); command.SetParameterValue("@CodeType", entity.CodeType); command.SetParameterValue("@BeginDate", entity.BeginDate); command.SetParameterValue("@EndDate", entity.EndDate); command.SetParameterValue("@InUser", customerSysNo); command.ExecuteNonQuery(); return((int)command.GetParameterValue("SysNo")); }