public ActionResult Pay([Bind(Include = "type")] int?type) { int ty = type == null ? 1 : (int)type; UpgradePaymentViewModel model = new UpgradePaymentViewModel(); VaultLifeApplicationEntities db = new VaultLifeApplicationEntities(); MembershipSubscriptionTypeDao dao = new MembershipSubscriptionTypeDao(db); MemberSubscriptionType mst = dao.findAll().Where(t => t.MemberSubscriptionTypeID == ty).First(); model.MembershipSubscriptionType = ty; model.amount = mst.amount.ToString("#######");; model.MembershipSubscriptionCode = mst.MemberSubscriptionTypeCode; return(View("Pay", model)); }
public ActionResult Pay([Bind(Include = "MembershipSubscriptionType,PaymentsModel")] UpgradePaymentViewModel paymentViewModel) { Vaultlife.Service.PaymentService paymentService = new Vaultlife.Service.PaymentService(new VaultLifeApplicationEntities()); string custIp = Request.ServerVariables["REMOTE_ADDR"]; bool success = paymentService.pay(paymentViewModel.PaymentsModel, paymentViewModel.MembershipSubscriptionType, User.Identity.Name, this.GetIPAddress(), custIp); if (success) { return(Redirect("/?l=" + paymentViewModel.MembershipSubscriptionType)); } else { ModelState.AddModelError("ErrorMessage", "There was an error processing your payment"); // MemberSubscriptionTypeCode and Amount not included in POST, use MembershipSubscriptionType to do lookup and populate paymentViewModel VaultLifeApplicationEntities db = new VaultLifeApplicationEntities(); MembershipSubscriptionTypeDao dao = new MembershipSubscriptionTypeDao(db); MemberSubscriptionType mst = dao.findAll().Where(t => t.MemberSubscriptionTypeID == paymentViewModel.MembershipSubscriptionType).First(); paymentViewModel.amount = mst.amount.ToString("#######");; paymentViewModel.MembershipSubscriptionCode = mst.MemberSubscriptionTypeCode; return(View("Pay", paymentViewModel)); } }
public List <MemberSubscriptionType> getMembershipUpgrades(String username) { List <MemberSubscriptionType> types = new List <MemberSubscriptionType>(); Member member = memberDao.findMember(username); double memberSubAmount = Convert.ToDouble(member.MemberSubscriptionType.amount); String type = member.MemberSubscriptionType.MemberSubscriptionTypeCode; List <MemberSubscriptionType> allTypes = memberSubTypeDao.findAll(); switch (type.Trim()) { case "Free": types = allTypes.Where(t => t.MemberSubscriptionTypeCode != "Free").ToList(); break; case "Tycoon": //already the highest so do nothing break; case "Luxury": MemberSubscriptionType tycoon = allTypes.Find(t => t.MemberSubscriptionTypeCode.Trim() == "Tycoon"); tycoon.amount = tycoon.amount - member.MemberSubscriptionType.amount; //TODO check if this is right types.Add(allTypes.Find(t => t.MemberSubscriptionTypeCode.Trim() == "Tycoon")); break; case "Loving-life": //TODO hmmmm.... detach objects just in case??? tycoon = allTypes.Find(t => t.MemberSubscriptionTypeCode.Trim() == "Tycoon"); MemberSubscriptionType luxury = allTypes.Find(t => t.MemberSubscriptionTypeCode.Trim() == "Luxury"); tycoon.amount = tycoon.amount - member.MemberSubscriptionType.amount; //TODO check if this is right luxury.amount = luxury.amount - member.MemberSubscriptionType.amount; types.Add(tycoon); types.Add(luxury); break; } return(types); }