Beispiel #1
0
        public ActionResult WithDraw()
        {
            var m = new WithdrawVm()
            {
                AccountId = AccountId()
            };

            return(View(m));
        }
Beispiel #2
0
        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);
     }
 }