コード例 #1
0
        public ActionResult PayBills()
        {
            string  id   = User.Identity.GetUserId();
            AppUser user = db.Users.Find(id);

            var model = new List <PayeeTransaction>();

            foreach (var payee in user.Payees)
            {
                PayeeTransaction item = new PayeeTransaction();
                item.Name = payee.Name;
                item.Type = payee.Type;
                model.Add(item);
            }

            ViewBag.List        = model;
            ViewBag.AllAccounts = GetAllAccounts();
            return(View(model.ToList()));
        }
コード例 #2
0
        public ActionResult PayBills(PayeeTransaction model, Int32 ProductID)
        {
            if (ModelState.IsValid)
            {
                if (model.Amount <= 0)
                {
                    ViewBag.Error = "Amount cannot be $0.00 or less.";
                    return(RedirectToAction("PayBills"));
                }
                Product     SelectedProduct = db.Accounts.Find(ProductID);
                Transaction transaction     = new Transaction();
                transaction.Amount          = -model.Amount;
                transaction.Date            = model.Date;
                transaction.Account         = SelectedProduct;
                transaction.Description     = "Payment to " + model.Name + " for " + model.Type + " bill";
                transaction.TransactionType = "Bill Payment";

                SelectedProduct.Balance += transaction.Amount;
                if (SelectedProduct.Balance < 0)
                {
                    if (SelectedProduct.Balance < -50)
                    {
                        ViewBag.Message = "Transaction exceeds $50 overdraft limit";
                        return(RedirectToAction("Withdrawal", "Transactions", new { transaction = transaction, ProductID = ProductID }));
                    }
                    Transaction fee = new Transaction();
                    fee.Amount          = -30;
                    fee.Description     = "Overdraft fee";
                    fee.Date            = model.Date;
                    fee.Account         = SelectedProduct;
                    fee.TransactionType = "Overdraft Fee";
                    db.Transactions.Add(fee);
                    SelectedProduct.Balance += fee.Amount;
                }
                db.Transactions.Add(transaction);
                db.Entry(SelectedProduct).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", "Transactions", new { id = ProductID }));
            }
            return(RedirectToAction("PayBills"));
        }