public static void Create(int days, decimal discountPercent) { if (TableHelper.GetListFromRawQuery <RentedReferralRenewalDiscount>(string.Format("SELECT * FROM RentedReferralRenewalDiscounts WHERE Days = {0};", days)).Count > 0) { throw new MsgException(string.Format("Discount with {0} days already exists", days)); } var newRange = new RentedReferralRenewalDiscount(days, discountPercent); newRange.Save(); }
protected void RenewButton_Click(object sender, EventArgs e) { ClearPanels(); //Renew try { Member user = Member.Current; int referralsDone = 0; for (int i = 0; i < DirectRefsGridView.Rows.Count; i++) { if (((HtmlInputCheckBox)DirectRefsGridView.Rows[i].FindControl("chkSelect")).Checked) { RentedReferralRenewalDiscount discount; var discountId = Convert.ToInt32(RenewDropDownList.SelectedValue); if (discountId == -1) { discount = RentedReferralRenewalDiscount.GetDefaultObject(); } else { discount = new RentedReferralRenewalDiscount(discountId); } var price = RentedReferralRenewalDiscount.GetRenewalPrice(user.Membership, discount); if (price > user.PurchaseBalance) { throw new MsgException(L1.OPPREFPARTIAL.ToString().Replace("%n%", referralsDone.ToString())); } user.SubtractFromPurchaseBalance(price, "Ref: renew"); user.SaveBalances(); referralsDone++; string refId = (DirectRefsGridView.Rows[i].Cells[1].Text.Trim()); RentReferralsSystem.RenewReferral(Int32.Parse(refId), discount.Days); } } SuccMessagePanel2.Visible = true; SuccMessage2.Text = U3501.REFACTIONSUCC; } catch (MsgException ex) { ErrorMessagePanel2.Visible = true; ErrorMessage2.Text = ex.Message; } DirectRefsGridView.DataBind(); }
protected void RenewDropDownList_Init(object sender, EventArgs e) { RenewDropDownList.Items.Clear(); var discounts = RentedReferralRenewalDiscount.GetAll(); var membership = Member.CurrentInCache.Membership; if (!discounts.Any(d => d.Days == 30)) { discounts.Add(RentedReferralRenewalDiscount.GetDefaultObject()); } discounts = discounts.OrderBy(x => x.Days).ToList(); foreach (var d in discounts) { RenewDropDownList.Items.Add(new ListItem(string.Format("{0} {1}: {2}", d.Days, L1.DAYS, RentedReferralRenewalDiscount.GetRenewalPrice(membership, d)), d.Id.ToString())); } }
public static Money GetRenewalPrice(IMembership membership, RentedReferralRenewalDiscount d) { var price = Money.MultiplyPercent((d.Days / (decimal)30) * membership.ReferralRentCost, (100 - membership.RenewalDiscount - d.DiscountPercent)); return(price); }