public ActionResult DeleteConfirmed(int id)
        {
            Bank_Transaction bank_Transaction = db.Bank_Transaction.Find(id);

            db.Bank_Transaction.Remove(bank_Transaction);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,AssetId,TransactionDate,Amount,RunningBalance")] Bank_Transaction bank_Transaction)
 {
     if (ModelState.IsValid)
     {
         db.Entry(bank_Transaction).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(bank_Transaction));
 }
        public ActionResult Create([Bind(Include = "Id,AssetId,TransactionDate,Amount,RunningBalance")] Bank_Transaction bank_Transaction)
        {
            if (ModelState.IsValid)
            {
                db.Bank_Transaction.Add(bank_Transaction);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(bank_Transaction));
        }
        // GET: Bank_Transaction/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bank_Transaction bank_Transaction = db.Bank_Transaction.Find(id);

            if (bank_Transaction == null)
            {
                return(HttpNotFound());
            }
            return(View(bank_Transaction));
        }
Пример #5
0
        public ActionResult MoneyTransfer(TransactionData transaction)
        {
            bool   Status  = false;
            string message = "";

            User userRecord;
            int  UserID = GetUserID();

            string  FromAccount      = transaction.FromAccountNumber;
            string  ToAccount        = transaction.ToAccountNumber;
            decimal TransactionValue = transaction.Amount;
            string  Reference        = transaction.Reference;
            string  Password         = transaction.Password;

            if (FromAccount != null && ToAccount != null && TransactionValue > 0 && Password != null)
            {
                using (var dbc = new MiniBankEntities())
                {
                    userRecord = dbc.Users.Where(u => u.UserID == UserID).FirstOrDefault();
                }

                if (userRecord != null)
                {
                    if (transaction.FromAccountNumber != transaction.ToAccountNumber)
                    {
                        if (userRecord.Password == Crypto.Hash(transaction.Password))
                        {
                            string pattern = @"^[0-9]+(\.[0-9]{1,2})?$";
                            if (Regex.Match(transaction.Amount.ToString(), pattern).Success&& transaction.Amount > 0)
                            {
                                Account ConfirmAccountTo;
                                Account ConfirmAccountFrom;
                                using (var dbc = new MiniBankEntities())
                                {
                                    ConfirmAccountFrom = dbc.Accounts.Where(a => a.AccountNumber == transaction.FromAccountNumber.ToString()).FirstOrDefault();
                                    ConfirmAccountTo   = dbc.Accounts.Where(a => a.AccountNumber == transaction.ToAccountNumber.ToString()).FirstOrDefault();

                                    if (ConfirmAccountTo != null && ConfirmAccountFrom != null)
                                    {
                                        if (ConfirmAccountFrom.Amount >= transaction.Amount)
                                        {
                                            Bank_Transaction transactionSend = new Bank_Transaction()
                                            {
                                                AccountID       = ConfirmAccountFrom.AccountID,
                                                Amount          = transaction.Amount,
                                                NewBalance      = ConfirmAccountFrom.Amount - transaction.Amount,
                                                PreviousBalance = ConfirmAccountFrom.Amount,
                                                Reference       = $"Ref Acc: {ConfirmAccountTo.AccountNumber}",
                                                TransactionType = 4,
                                                TransactionDate = DateTime.Now
                                            };

                                            Bank_Transaction transactionRecieve = new Bank_Transaction()
                                            {
                                                AccountID       = ConfirmAccountTo.AccountID,
                                                Amount          = transaction.Amount,
                                                NewBalance      = ConfirmAccountTo.Amount + transaction.Amount,
                                                PreviousBalance = ConfirmAccountTo.Amount,
                                                Reference       = $"{transaction.Reference}",
                                                TransactionType = 3,
                                                TransactionDate = DateTime.Now
                                            };

                                            dbc.Bank_Transaction.Add(transactionSend);
                                            dbc.Bank_Transaction.Add(transactionRecieve);
                                            dbc.SaveChanges();

                                            //Transfer the money
                                            ConfirmAccountFrom.Amount -= transaction.Amount;
                                            ConfirmAccountTo.Amount   += transaction.Amount;

                                            dbc.SaveChanges();

                                            if (ModelState.IsValid)
                                            {
                                                ModelState.Clear();
                                            }

                                            Status          = true;
                                            ViewBag.Success = true;
                                            message         = $"You successfully transfered {transaction.Amount} to Account {ConfirmAccountTo.AccountNumber}";
                                        }
                                        else
                                        {
                                            message = "Sorry, you do not have sufficient funds to carry out this transaction";
                                        }
                                    }
                                    else
                                    {
                                        message = "Account could not be found, please try again.";
                                    }
                                }
                            }
                            else
                            {
                                message = "The amount you entered was not a valid monetary value";
                            }
                        }
                        else
                        {
                            message = "Authorisation failed, the password you entered did not match the account";
                        }
                    }
                    else
                    {
                        message = "Authorisation failed, you can not transfer money to the same account.";
                    }
                }
                else
                {
                    message = "Authorisation failed, your customer account was not found.";
                }
            }

            List <Account> myAccounts = GetUserBankAccounts(UserID);

            if (myAccounts.Count <= 0)
            {
                Status = false;
            }

            ViewBag.myAccounts = myAccounts;

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View());
        }