public ServiceResult CancelRegistration(int existingRegistrationId) { var result = new ServiceResult(); IEmailService emailService = new EmailService(); IDiscountService discountService = new DiscountService(this._repository, false); Registration cancelReg = _repository.Registrations.Find(x => x.RegistrationId == existingRegistrationId); cancelReg.RegistrationStatus = RegistrationStatus.Cancelled; cancelReg.DateUpdated = DateTime.Now; var newTransferCode = new RedemptionCode { GeneratingRegistrationId = existingRegistrationId, Code = discountService.GenerateDiscountCode(), RedemptionCodeType = RedemptionCodeType.StraightValue, Value = GetRegistrationPathValue(existingRegistrationId), DiscountType = DiscountType.Dollars }; result = discountService.CreateRedemptionCode(newTransferCode); if (!_sharedRepository) { _repository.SaveChanges(); emailService.SendCancellationEmail(newTransferCode.DiscountItemId); } return(result); }
public ServiceResult CancelRegistration(int existingRegistrationId) { var result = new ServiceResult(); IEmailService emailService = new EmailService(); IDiscountService discountService = new DiscountService(this._repository, false); Registration cancelReg = _repository.Registrations.Find(x => x.RegistrationId == existingRegistrationId); cancelReg.RegistrationStatus = RegistrationStatus.Cancelled; cancelReg.DateUpdated = DateTime.Now; var newTransferCode = new RedemptionCode { GeneratingRegistrationId = existingRegistrationId, Code = discountService.GenerateDiscountCode(), RedemptionCodeType = RedemptionCodeType.StraightValue, Value = GetRegistrationPathValue(existingRegistrationId), DiscountType = DiscountType.Dollars }; result = discountService.CreateRedemptionCode(newTransferCode); if (!_sharedRepository) { _repository.SaveChanges(); emailService.SendCancellationEmail(newTransferCode.DiscountItemId); } return result; }
public ServiceResult TransferRegistration(int existingRegistrationId, string name, string email) { ServiceResult result = null; IEmailService emailService = new EmailService(); var discountService = new DiscountService(this._repository, false); Registration transferReg = _repository.Registrations.Find(x => x.RegistrationId == existingRegistrationId); transferReg.RegistrationStatus = RegistrationStatus.Held; transferReg.DateUpdated = DateTime.Now; var newTransferCode = new RedemptionCode { GeneratingRegistrationId = existingRegistrationId, Code = discountService.GenerateDiscountCode(), RedemptionCodeType = RedemptionCodeType.Transfer, Value = GetRegistrationPathValue(existingRegistrationId), DiscountType = DiscountType.Dollars }; result = discountService.CreateRedemptionCode(newTransferCode); if (!_sharedRepository) { _repository.SaveChanges(); emailService.SendTransferEmail(newTransferCode.DiscountItemId, name, email); } return(result); }
public ServiceResult TransferRegistration(int existingRegistrationId, string name, string email) { ServiceResult result = null; IEmailService emailService = new EmailService(); var discountService = new DiscountService(this._repository, false); Registration transferReg = _repository.Registrations.Find(x => x.RegistrationId == existingRegistrationId); transferReg.RegistrationStatus = RegistrationStatus.Held; transferReg.DateUpdated = DateTime.Now; var newTransferCode = new RedemptionCode { GeneratingRegistrationId = existingRegistrationId, Code = discountService.GenerateDiscountCode(), RedemptionCodeType = RedemptionCodeType.Transfer, Value = GetRegistrationPathValue(existingRegistrationId), DiscountType = DiscountType.Dollars }; result = discountService.CreateRedemptionCode(newTransferCode); if (!_sharedRepository) { _repository.SaveChanges(); emailService.SendTransferEmail(newTransferCode.DiscountItemId, name, email); } return result; }
private bool ApplyDiscount(CartSummary cartSummary, SessionCart currentCart) { DiscountItem discount = _repository.DiscountItems.Find(x => x.Code.ToLower() == currentCart.DiscountCode.ToLower()); if (discount != null) { if (cartSummary.TotalCost == 0) { discount = null; currentCart.DiscountCode = null; cartSummary.SummaryMessages.Add("You cannot apply a discount code to this cart. There are no charges."); } if (discount is RedemptionCode) { var discountableRegList = cartSummary.CartItems.Where(x => x.PurchaseType == PurchaseType.Registration && x.Discountable == true).OrderByDescending(x => x.ItemCost).ToList(); if (discountableRegList.Count() > 0) { RedemptionCode code = (RedemptionCode)discount; IDiscountService discountService = new DiscountService(this._repository, false); ServiceResult validationResult = discountService.ValidateDiscount(code); if (validationResult.Success) { var cost = discountableRegList[0].ItemCost; var discountValue = code.DiscountType == DiscountType.Dollars ? code.Value : cost * (code.Value / 100); discountableRegList[0].DiscountItemId = code.DiscountItemId; discountableRegList[0].DiscountDescription = code.Code; discountableRegList[0].DiscountType = code.DiscountType; discountableRegList[0].DiscountValue = discountableRegList[0].ItemTotal <= 0 ? cost : discountValue; if (NeedToRemoveProcessingFee(currentCart, code)) RemoveProcessingFee(cartSummary); } else cartSummary.SummaryMessages.Add(validationResult.GetServiceErrors().First().ErrorMessage); } else cartSummary.SummaryMessages.Add("There are no applicable items for this discount."); } if (discount is Coupon) { Coupon coupon = (Coupon)discount; IDiscountService discountService = new DiscountService(this._repository, false); ServiceResult validationResult = discountService.ValidateDiscount(coupon); if (validationResult.Success) { switch (coupon.CouponType) { case CouponType.Registration: var discountableRegList = cartSummary.CartItems.Where( x => x.PurchaseType == PurchaseType.Registration && x.Discountable == true && x.EventId == ((coupon.EventId.HasValue) ? coupon.EventId.Value : x.EventId)).OrderByDescending(x => x.ItemCost).ToList(); if (discountableRegList.Any()) { var cost = discountableRegList[0].ItemCost; var discountValue = coupon.DiscountType == DiscountType.Dollars ? coupon.Value : cost * (coupon.Value / 100); var discountedCost = cost - discountValue; discountableRegList[0].DiscountItemId = coupon.DiscountItemId; discountableRegList[0].DiscountDescription = coupon.Code; discountableRegList[0].DiscountType = coupon.DiscountType; discountableRegList[0].DiscountValue = discountableRegList[0].ItemTotal <= 0 ? cost : discountValue; if (NeedToRemoveProcessingFee(currentCart, coupon)) RemoveProcessingFee(cartSummary); } else cartSummary.SummaryMessages.Add("There are no applicable items for this discount."); break; } } else cartSummary.SummaryMessages.Add(validationResult.GetServiceErrors().First().ErrorMessage); } } else cartSummary.SummaryMessages.Add("This discount does not exist."); return cartSummary.SummaryMessages.Count <= 0; }
private bool ApplyDiscount(CartSummary cartSummary, SessionCart currentCart) { DiscountItem discount = _repository.DiscountItems.Find(x => x.Code.ToLower() == currentCart.DiscountCode.ToLower()); if (discount != null) { if (cartSummary.TotalCost == 0) { discount = null; currentCart.DiscountCode = null; cartSummary.SummaryMessages.Add("You cannot apply a discount code to this cart. There are no charges."); } if (discount is RedemptionCode) { var discountableRegList = cartSummary.CartItems.Where(x => x.PurchaseType == PurchaseType.Registration && x.Discountable == true).OrderByDescending(x => x.ItemCost).ToList(); if (discountableRegList.Count() > 0) { RedemptionCode code = (RedemptionCode)discount; IDiscountService discountService = new DiscountService(this._repository, false); ServiceResult validationResult = discountService.ValidateDiscount(code); if (validationResult.Success) { var cost = discountableRegList[0].ItemCost; var discountValue = code.DiscountType == DiscountType.Dollars ? code.Value : cost * (code.Value / 100); discountableRegList[0].DiscountItemId = code.DiscountItemId; discountableRegList[0].DiscountDescription = code.Code; discountableRegList[0].DiscountType = code.DiscountType; discountableRegList[0].DiscountValue = discountableRegList[0].ItemTotal <= 0 ? cost : discountValue; if (NeedToRemoveProcessingFee(currentCart, code)) { RemoveProcessingFee(cartSummary); } } else { cartSummary.SummaryMessages.Add(validationResult.GetServiceErrors().First().ErrorMessage); } } else { cartSummary.SummaryMessages.Add("There are no applicable items for this discount."); } } if (discount is Coupon) { Coupon coupon = (Coupon)discount; IDiscountService discountService = new DiscountService(this._repository, false); ServiceResult validationResult = discountService.ValidateDiscount(coupon); if (validationResult.Success) { switch (coupon.CouponType) { case CouponType.Registration: var discountableRegList = cartSummary.CartItems.Where( x => x.PurchaseType == PurchaseType.Registration && x.Discountable == true && x.EventId == ((coupon.EventId.HasValue) ? coupon.EventId.Value : x.EventId)).OrderByDescending(x => x.ItemCost).ToList(); if (discountableRegList.Any()) { var cost = discountableRegList[0].ItemCost; var discountValue = coupon.DiscountType == DiscountType.Dollars ? coupon.Value : cost * (coupon.Value / 100); var discountedCost = cost - discountValue; discountableRegList[0].DiscountItemId = coupon.DiscountItemId; discountableRegList[0].DiscountDescription = coupon.Code; discountableRegList[0].DiscountType = coupon.DiscountType; discountableRegList[0].DiscountValue = discountableRegList[0].ItemTotal <= 0 ? cost : discountValue; if (NeedToRemoveProcessingFee(currentCart, coupon)) { RemoveProcessingFee(cartSummary); } } else { cartSummary.SummaryMessages.Add("There are no applicable items for this discount."); } break; } } else { cartSummary.SummaryMessages.Add(validationResult.GetServiceErrors().First().ErrorMessage); } } } else { cartSummary.SummaryMessages.Add("This discount does not exist."); } return(cartSummary.SummaryMessages.Count <= 0); }
public ServiceResult ValidateRedemptionCodeForUserId(string code, int userId) { DiscountService discountService = new DiscountService(this._repository, false); return(discountService.ValidateRedemptionCodeForUserId(code, userId)); }
public ServiceResult ValidateRedemptionCode(string code) { DiscountService discountService = new DiscountService(this._repository, false); return(discountService.ValidateRedemptionCode(code)); }
public ServiceResult ValidateRedemptionCodeForUserId(string code, int userId) { DiscountService discountService = new DiscountService(this._repository, false); return discountService.ValidateRedemptionCodeForUserId(code, userId); }
public ServiceResult ValidateRedemptionCode(string code) { DiscountService discountService = new DiscountService(this._repository, false); return discountService.ValidateRedemptionCode(code); }