public ActionResult WithDraw() { var m = new WithdrawVm() { AccountId = AccountId() }; return(View(m)); }
public ActionResult WithDraw(WithdrawVm m) { if (ModelState.IsValid) { double miniAmount = 200; if (m.Amount < miniAmount) { ModelState.AddModelError("", "Please Enter Amount above the minimum amount - " + miniAmount); } var acc = new CryptoAccount(); var bal = Convert.ToDouble(acc.Get(AccountId()).CurrentCryptoBalance); var sym = acc.Get(AccountId()).CR_Currency.ShortCode; if (bal < m.Amount) { ModelState.AddModelError("", "Sorry !, You dont Have enough balance to withdraw - Your Current Balance is " + sym + " " + bal); } if (bal >= m.Amount) { //process the payment // get maintaince fee var fees = acc.GetMaintainanceFees(); foreach (var i in fees) { if (i.SmallestAmount <= (decimal?)m.Amount || i.LargestAmount <= (decimal?)m.Amount) { m.MaintainceFee = Convert.ToDecimal(i.Fee); var w = new CryptoWithDrawRequest(); w.Create(new WithdrawVm() { AccountId = AccountId(), Amount = m.Amount, MaintainceFee = Convert.ToDecimal(i.Fee), MaintainceFeeStatus = WithDrawRequestStatus.HasNotPaidMaintainceFee.ToString(), WalletId = m.WalletId, }); return(RedirectToAction(nameof(MaintainceSecuredPayment), new { amount = m.MaintainceFee, withdrawrequestId = w.savedId })); } else { ModelState.AddModelError("", "Please contact customer support. "); } } } } //IEnumerable<ModelError> errors = ModelState.Values.SelectMany(v => v.Errors).ToList(); return(View(m)); }
public bool Create(WithdrawVm m) { try { var s = context.WithdrawRequests.Add(new WithdrawRequest() { AccountId = m.AccountId, Status = WithDrawRequestStatus.Pending.ToString(), DateCreated = DateTime.UtcNow, Amount = Convert.ToDecimal(m.Amount), WalletId = m.WalletId, MaintainceFee = m.MaintainceFee, MaintainceFeeStatus = WithDrawRequestStatus.HasNotPaidMaintainceFee.ToString() }); context.SaveChanges(); savedId = s.Id; return(true); } catch (Exception e) { Console.WriteLine(e); return(false); } }