示例#1
0
        // GET: IRA/Edit/5
        public ActionResult Edit(int?id)
        {
            var CustomerQuery = from c in db.Users
                                where c.UserName == User.Identity.Name
                                select c;


            // Get the Customer
            AppUser customer = CustomerQuery.FirstOrDefault();

            //Return frozen view if no go
            if (customer.ActiveStatus == false)
            {
                return(View("Frozen"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IRA ira = db.IRAAccount.Find(id);

            if (ira == null)
            {
                return(HttpNotFound());
            }
            return(View(ira));
        }
示例#2
0
        public ActionResult Edit([Bind(Include = "IRAID,Name,AccountNumber")] IRA ira)
        {
            if (ModelState.IsValid)
            {
                // Find the CustomerID Associated with the Account
                var IRACustomerQuery = from IR in db.IRAAccount
                                       where IR.IRAID == ira.IRAID
                                       select IR.Customer.Id;


                // Execute the Find
                List <String> CustomerID = IRACustomerQuery.ToList();

                String IntCustomerID = CustomerID[0];

                IRA CustomerIRA = db.IRAAccount.Find(ira.IRAID);

                // updated the checking account
                CustomerIRA.Name = ira.Name;

                db.Entry(CustomerIRA).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Portal", "Home", new { id = IntCustomerID }));
            }
            return(RedirectToAction("Index", "Checkings", new { id = ira.IRAID }));
        }
示例#3
0
        public ActionResult IRAWithdrawExclude()
        {
            TransferViewModel TVM         = db.TransferViewModels.Find(1);
            Account           destination = new Account();

            destination.ProductNumber = TVM.DestinationID;
            destination.ProductType   = ProductType.IRA;
            IRA ira = GetIRA(destination.ProductNumber);

            ira.IRABalance -= TVM.Amount;
            ira.IRABalance -= 30;
            db.SaveChanges();
            destination.ProductName = ira.IRAName;
            Int32 NextTransNum = db.Transactions.ToList().Count() + 1;

            if (TVM.Comment == null || TVM.Comment == "")
            {
                TVM.Comment = "No comment entered.";
            }
            Transaction trans = new Transaction {
                Description = "Withdrawal of $" + TVM.Amount + " from " + destination.ProductName + ".", TransactionType = TransactionType.withdrawal, Amount = TVM.Amount, Date = TVM.Date, TransactionNumber = NextTransNum, Comment = TVM.Comment
            };
            Int32       NextTransNum2 = NextTransNum + 1;
            Transaction fee           = new Transaction {
                Description = "Fee of $30 incurred during withdrawal from " + destination.ProductName + ".", TransactionType = TransactionType.fee, Amount = 30, Date = TVM.Date, TransactionNumber = NextTransNum2, Comment = TVM.Comment
            };

            db.Transactions.Add(trans);
            db.Transactions.Add(fee);
            db.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
示例#4
0
        public static void AddAccounts(AppDbContext db)
        {
            Saving s1 = new Saving();

            s1.SavingsAccountNumber = 1000000001;
            s1.User           = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**");
            s1.SavingsName    = "William's Savings";
            s1.SavingsBalance = 40035.5m;
            db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s1);

            StockPortfolio sp1 = new StockPortfolio(); sp1.StockAccountNumber = 1000000000; sp1.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); sp1.Name = "Shan's Stock"; sp1.PortfolioCashBalance = 0m; db.StockPortfoliosDbSet.AddOrUpdate(sp => sp.StockAccountNumber, sp1);
            Checking       c1  = new Checking(); c1.CheckingsAccountNumber = 1000000002; c1.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c1.CheckingsName = "Gregory's Checking"; c1.CheckingsBalance = 39779.49m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c1);
            Checking       c2  = new Checking(); c2.CheckingsAccountNumber = 1000000003; c2.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c2.CheckingsName = "Allen's Checking"; c2.CheckingsBalance = 47277.33m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c2);
            Checking       c3  = new Checking(); c3.CheckingsAccountNumber = 1000000004; c3.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c3.CheckingsName = "Reagan's Checking"; c3.CheckingsBalance = 70812.15m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c3);
            Saving         s2  = new Saving(); s2.SavingsAccountNumber = 1000000005; s2.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s2.SavingsName = "Kelly's Savings"; s2.SavingsBalance = 21901.97m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s2);
            Checking       c4  = new Checking(); c4.CheckingsAccountNumber = 1000000006; c4.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c4.CheckingsName = "Eryn's Checking"; c4.CheckingsBalance = 70480.99m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c4);
            Saving         s3  = new Saving(); s3.SavingsAccountNumber = 1000000007; s3.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s3.SavingsName = "Jake's Savings"; s3.SavingsBalance = 7916.4m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s3);
            StockPortfolio sp2 = new StockPortfolio(); sp2.StockAccountNumber = 1000000008; sp2.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); sp2.Name = "Michelle's Stock"; sp2.PortfolioCashBalance = 0m; db.StockPortfoliosDbSet.AddOrUpdate(sp => sp.StockAccountNumber, sp2);
            Saving         s4  = new Saving(); s4.SavingsAccountNumber = 1000000009; s4.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s4.SavingsName = "Jeffrey's Savings"; s4.SavingsBalance = 69576.83m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s4);
            StockPortfolio sp3 = new StockPortfolio(); sp3.StockAccountNumber = 1000000010; sp3.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); sp3.Name = "Kelly's Stock"; sp3.PortfolioCashBalance = 0m; db.StockPortfoliosDbSet.AddOrUpdate(sp => sp.StockAccountNumber, sp3);
            Checking       c5  = new Checking(); c5.CheckingsAccountNumber = 1000000011; c5.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c5.CheckingsName = "Eryn's Checking 2"; c5.CheckingsBalance = 30279.33m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c5);
            IRA            r1  = new IRA(); r1.IRAAccountNumber = 1000000012; r1.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); r1.IRAName = "Jennifer's IRA"; r1.IRACashBalance = 5000m; db.IRAsDbSet.AddOrUpdate(r => r.IRAAccountNumber, r1);
            Saving         s5  = new Saving(); s5.SavingsAccountNumber = 1000000013; s5.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s5.SavingsName = "Sarah's Savings"; s5.SavingsBalance = 11958.08m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s5);
            Saving         s6  = new Saving(); s6.SavingsAccountNumber = 1000000014; s6.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s6.SavingsName = "Jeremy's Savings"; s6.SavingsBalance = 72990.47m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s6);
            Saving         s7  = new Saving(); s7.SavingsAccountNumber = 1000000015; s7.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s7.SavingsName = "Elizabeth's Savings"; s7.SavingsBalance = 7417.2m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s7);
            IRA            r2  = new IRA(); r2.IRAAccountNumber = 1000000016; r2.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); r2.IRAName = "Allen's IRA"; r2.IRACashBalance = 5000m; db.IRAsDbSet.AddOrUpdate(r => r.IRAAccountNumber, r2);
            StockPortfolio sp4 = new StockPortfolio(); sp4.StockAccountNumber = 1000000017; sp4.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); sp4.Name = "John's Stock"; sp4.PortfolioCashBalance = 0m; db.StockPortfoliosDbSet.AddOrUpdate(sp => sp.StockAccountNumber, sp4);
            Saving         s8  = new Saving(); s8.SavingsAccountNumber = 1000000018; s8.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); s8.SavingsName = "Clarence's Savings"; s8.SavingsBalance = 1642.82m; db.SavingsDbSet.AddOrUpdate(s => s.SavingsAccountNumber, s8);
            Checking       c6  = new Checking(); c6.CheckingsAccountNumber = 1000000019; c6.User = db.Users.FirstOrDefault(u => u.UserName == "*****@*****.**"); c6.CheckingsName = "Sarah's Checking"; c6.CheckingsBalance = 84421.45m; db.CheckingsDbSet.AddOrUpdate(c => c.CheckingsAccountNumber, c6);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            IRA iRA = db.IRAs.Find(id);

            db.IRAs.Remove(iRA);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#6
0
 public ActionResult Edit([Bind(Include = "IRAID,IRAAccountNumber,CashBalance,Name")] IRA iRA)
 {
     if (ModelState.IsValid)
     {
         db.Entry(iRA).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(iRA));
 }
        public ActionResult Create([Bind(Include = "IRAID,IRAName,IRABalance,Status,IRANumber")] IRA ira)
        {
            AppUser IRAOwner = db.Users.Find(User.Identity.GetUserId());

            ira.Owner = IRAOwner;
            Int32 NextAccNum = db.Accounts.ToList().Count() + 1000000001;

            ira.AccountNumber = NextAccNum;
            Int32  NextSecureNum = db.Accounts.ToList().Count() + 1;
            string SecureNum     = "XXXXXX0000";

            if (NextSecureNum < 10)
            {
                SecureNum = "XXXXXX000" + Convert.ToString(NextSecureNum);
            }
            if (NextSecureNum < 100 && NextSecureNum >= 10)
            {
                SecureNum = "XXXXXX00" + Convert.ToString(NextSecureNum);
            }
            if (NextSecureNum < 1000 && NextSecureNum >= 100)
            {
                SecureNum = "XXXXXX0" + Convert.ToString(NextSecureNum);
            }
            if (NextSecureNum < 10000 && NextSecureNum >= 1000)
            {
                SecureNum = "XXXXXX" + Convert.ToString(NextSecureNum);
            }
            if (NextSecureNum >= 10000)
            {
                NextSecureNum -= 10000;
                SecureNum      = "XXXXXX" + Convert.ToString(NextSecureNum);
            }
            ira.SecureNumber = SecureNum;

            if (ModelState.IsValid)
            {
                db.IRAs.Add(ira);
                db.SaveChanges();
                Int32       ProdID       = ira.IRAID;
                string      ProdName     = ira.IRAName;
                Int32       ProdNum      = ira.AccountNumber;
                string      ProdString   = ira.SecureNumber;
                Decimal     ProdBal      = ira.IRABalance;
                ProductType ProdType     = ProductType.IRA;
                Account     AccountToAdd = new Account {
                    ProductID = ProdID, ProductName = ProdName, ProductType = ProdType, ProductNumber = ProdNum, ProductString = ProdString, ProductBalance = ProdBal
                };
                db.Accounts.Add(AccountToAdd);
                db.SaveChanges();
                return(RedirectToAction("Index", "Home"));
            }

            return(View(ira));
        }
示例#8
0
        public ActionResult Create([Bind(Include = "IRAID,IRAAccountNumber,CashBalance,Name")] IRA IRA)
        {
            if (ModelState.IsValid)
            {
                db.IRAsDbSet.Add(IRA);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(IRA));
        }
        public ActionResult Edit([Bind(Include = "TransactionID,TypeOfTransaction,ApprovalStatus,TransactionDate,TransactionAmount,TransactionDescription,TransactionComments,DisputeStatus,AccountSender,AccountSenderID")] Transaction transaction, string TransactionDate, string SelectedAccountType, int?Id, int?AccountNumber, TransactionStatus?ApprovalStatus, Int32 AccountID, String UserEmail)
        {
            if (ModelState.IsValid)
            {
                db.Entry(transaction).State = EntityState.Modified;
                db.SaveChanges();

                if (ApprovalStatus == TransactionStatus.Approved)
                {
                    Checking accountToChange1 = db.Checkings.Find(transaction.AccountSenderID);
                    if (accountToChange1 != null && accountToChange1.CheckingNumber == transaction.AccountSender)
                    {
                        accountToChange1.CheckingBalance += transaction.TransactionAmount;
                        db.Entry(accountToChange1).State  = EntityState.Modified;
                        db.SaveChanges();
                        EmailSender(UserEmail, accountToChange1.CheckingNumber, transaction.TransactionAmount);
                    }

                    Savings accountToChange2 = db.Savings.Find(transaction.AccountSenderID);
                    if (accountToChange2 != null && accountToChange2.SavingsNumber == transaction.AccountSender)
                    {
                        accountToChange2.SavingsBalance += transaction.TransactionAmount;
                        db.Entry(accountToChange2).State = EntityState.Modified;
                        db.SaveChanges();
                        EmailSender(UserEmail, accountToChange2.SavingsNumber, accountToChange2.SavingsBalance);
                    }

                    IRA accountToChange3 = db.IRAs.Find(transaction.AccountSenderID);
                    if (accountToChange3 != null && accountToChange3.IRANumber == transaction.AccountSender)
                    {
                        accountToChange3.IRABalance     += transaction.TransactionAmount;
                        db.Entry(accountToChange3).State = EntityState.Modified;
                        db.SaveChanges();
                        EmailSender(UserEmail, accountToChange3.IRANumber, accountToChange3.IRABalance);
                    }

                    StockPortfolio accountToChange4 = db.StockPortfolios.Find(transaction.AccountSenderID);
                    if (accountToChange4 != null && accountToChange4.StockPortfolioNumber == transaction.AccountSender)
                    {
                        accountToChange4.CashBalance    += transaction.TransactionAmount;
                        db.Entry(accountToChange4).State = EntityState.Modified;
                        db.SaveChanges();
                        EmailSender(UserEmail, accountToChange4.StockPortfolioNumber, Convert.ToDecimal(accountToChange4.CashBalance));
                    }
                }


                return(RedirectToAction("Index"));
            }
            ViewBag.TransactionID = new SelectList(db.Disputes, "DisputeID", "Comments", transaction.TransactionID);
            return(View(transaction));
        }
示例#10
0
        public ActionResult Search(SearchViewModel TheSearch, Int32 IRAID)
        {
            // get the ira
            IRA ira = db.IRAAccount.Find(IRAID);

            List <BankingTransaction> IraTransactions = SearchTransactions.Search(db, TheSearch, 3, IRAID);

            ViewBag.IraTransactions = IraTransactions;
            ViewBag.Ranges          = SearchTransactions.AmountRange();
            ViewBag.Dates           = SearchTransactions.DateRanges();
            ViewBag.ResultsCount    = IraTransactions.Count;
            return(View("Details", ira));
        }
示例#11
0
        // GET: IRAs/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IRA ira = db.IRAAccount.Find(id);

            if (ira == null)
            {
                return(HttpNotFound());
            }
            return(View(ira));
        }
        // GET: IRAs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IRA iRA = db.IRAs.Find(id);

            if (iRA == null)
            {
                return(HttpNotFound());
            }
            return(View(iRA));
        }
        public ActionResult DepositLimit(string TransactionDate, string SelectedAccount, string SelectedAmount)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            List <string> parsed = SelectedAccount.Split(',').ToList <string>();

            Console.WriteLine(parsed);

            string SelectedAccountType = parsed[0];
            int    Id            = Convert.ToInt32(parsed[3]);
            int    AccountNumber = Convert.ToInt32(parsed[1]);

            if (ModelState.IsValid)
            {
                //Find associated account
                IRA accountToChange = db.IRAs.Find(Id);
                if ((accountToChange.Contribution + Convert.ToDecimal(SelectedAmount)) > 5000.0m)
                {
                    return(RedirectToAction("DepositLimit", new { SelectedAmount = (5000.0m - accountToChange.Contribution), SelectedAccount }));
                }
                else
                {
                    accountToChange.IRABalance   += Convert.ToDecimal(SelectedAmount);
                    accountToChange.Contribution += Convert.ToDecimal(SelectedAmount);
                }
                db.Entry(accountToChange).State = EntityState.Modified;

                //Create a transaction
                Transaction transactionToChange = new Transaction();
                transactionToChange.AccountSenderID        = Id;
                transactionToChange.AppUser                = u;
                transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                transactionToChange.TransactionDescription = "this is a deposit what more do you want";
                // TODO: Not today, should be user input
                transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                transactionToChange.AccountSender     = AccountNumber;
                db.Transactions.Add(transactionToChange);

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Edit([Bind(Include = "IRAID,IRAName,IRABalance,Status,IRANumber")] IRA ira)
        {
            if (ModelState.IsValid)
            {
                IRA iraToChange = db.IRAs.Find(ira.IRAID);

                iraToChange.IRAName    = ira.IRAName;
                iraToChange.IRABalance = ira.IRABalance;
                iraToChange.Status     = ira.Status;

                db.Entry(iraToChange).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", "Home"));
            }
            return(View(ira));
        }
示例#15
0
        public ActionResult DeleteConfirmed(int id)
        {
            // Find the CustomerID Associated with the Account
            var IRACustomerQuery = from IR in db.IRAAccount
                                   where IR.IRAID == id
                                   select IR.Customer.Id;


            // Execute the Find
            List <String> CustomerID = IRACustomerQuery.ToList();

            String IntCustomerID = CustomerID[0];

            IRA ira = db.IRAAccount.Find(id);

            db.IRAAccount.Remove(ira);
            db.SaveChanges();
            return(RedirectToAction("Portal", "Home", new { id = IntCustomerID }));
        }
示例#16
0
        // GET: IRAs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IRA iRA = db.IRAs.Find(id);

            if (iRA == null)
            {
                return(HttpNotFound());
            }
            List <Transaction> transactions = new List <Transaction>();
            var query = from x in db.Transactions
                        select x;

            foreach (var x in query)
            {
                if (x.IRA == iRA && x.Owner.Id == User.Identity.GetUserId())
                {
                    transactions.Add(x);
                }
            }
            if (transactions.Count() > 5)
            {
                var count = transactions.Count();
                transactions.Skip(count - 5);
            }
            ViewBag.transactions = transactions;
            List <Dispute> disputes = new List <Dispute>();
            var            query2   = from x in db.Disputes
                                      select x;

            foreach (var x in query2)
            {
                if (x.Owner.Id == User.Identity.GetUserId())
                {
                    disputes.Add(x);
                }
            }
            ViewBag.disputes = disputes;
            return(View(iRA));
        }
示例#17
0
        public ActionResult ContributionLimit(string SelectedType, string StartingBalance, string SelectedName)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            var iraquery = (from c in db.IRAs
                            select c.IRANumber).Max();
            var stockquery = (from c in db.StockPortfolios
                              select c.StockPortfolioNumber).Max();
            var checkingquery = (from c in db.Checkings
                                 select c.CheckingNumber).Max();
            var savingsquery = (from c in db.Savings
                                select c.SavingsNumber).Max();


            int latest = (Math.Max(iraquery, Math.Max(stockquery, Math.Max(checkingquery, savingsquery))));

            if (Convert.ToDecimal(StartingBalance) > 5000)
            {
                return(RedirectToAction("ContributionLimit", new { StartingBalance = "5000", SelectedName }));
            }
            else
            {
                IRA newira = new IRA();
                newira.AppUser      = u;
                newira.IRABalance   = Convert.ToDecimal(StartingBalance);
                newira.Contribution = Convert.ToDecimal(StartingBalance);
                newira.IRANumber    = Convert.ToInt32(latest + 1);
                if (SelectedName != null && SelectedName != "")
                {
                    newira.IRAName = SelectedName;
                }
                else
                {
                    newira.IRAName = "Longhorn IRA";
                }
                db.IRAs.Add(newira);
                db.SaveChanges();
            }

            return(RedirectToAction("Index", "ManageAccounts"));
        }
        public ActionResult AccountStatus(string SelectedAccount, Enabled Status)
        {
            List <string> parsed = SelectedAccount.Split(',').ToList <string>();


            string SelectedAccountType = parsed[0];
            int    Id            = Convert.ToInt32(parsed[3]);
            int    AccountNumber = Convert.ToInt32(parsed[1]);

            if (SelectedAccountType == "Checking")
            {
                Checking accountToChange = db.Checkings.Find(Id);
                accountToChange.Enableds        = Status;
                db.Entry(accountToChange).State = EntityState.Modified;
                db.SaveChanges();
            }
            else if (SelectedAccountType == "Savings")
            {
                Savings accountToChange = db.Savings.Find(Id);
                accountToChange.Enableds        = Status;
                db.Entry(accountToChange).State = EntityState.Modified;
                db.SaveChanges();
            }
            else if (SelectedAccountType == "IRA")
            {
                IRA accountToChange = db.IRAs.Find(Id);
                accountToChange.Enableds        = Status;
                db.Entry(accountToChange).State = EntityState.Modified;
                db.SaveChanges();
            }
            else
            {
                StockPortfolio accountToChange = db.StockPortfolios.Find(Id);
                accountToChange.Enableds        = Status;
                db.Entry(accountToChange).State = EntityState.Modified;
                db.SaveChanges();
            }


            return(RedirectToAction("AccountStatus"));
        }
        public ActionResult TransferSuccess()
        {
            string            Origin      = "";
            string            Destination = "";
            TransferViewModel TVM         = db.TransferViewModels.Find(1);
            decimal           Amount      = TVM.Amount;

            if (SearchSaving(TVM.OriginID))
            {
                Saving save = GetSaving(TVM.OriginID);
                Origin = save.SavingName;
            }
            if (SearchIRA(TVM.OriginID))
            {
                IRA ira = GetIRA(TVM.OriginID);
                Origin = ira.IRAName;
            }
            if (SearchChecking(TVM.OriginID))
            {
                Checking check = GetChecking(TVM.OriginID);
                Origin = check.CheckingName;
            }
            if (SearchSaving(TVM.DestinationID))
            {
                Saving save = GetSaving(TVM.DestinationID);
                Destination = save.SavingName;
            }
            if (SearchIRA(TVM.DestinationID))
            {
                IRA ira = GetIRA(TVM.DestinationID);
                Destination = ira.IRAName;
            }
            if (SearchChecking(TVM.DestinationID))
            {
                Checking check = GetChecking(TVM.DestinationID);
                Destination = check.CheckingName;
            }
            ViewBag.ConfirmationMessage = "Transfer of $" + Amount.ToString() + " from " + Origin + " to " + Destination + " successfully completed.";
            return(View());
        }
示例#20
0
        // GET: IRAs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IRA ira = db.IRAAccount.Find(id);

            if (ira == null)
            {
                return(HttpNotFound());
            }

            // Get the List off all of the Banking Transaction For this Account
            List <BankingTransaction> IRATransactions = ira.BankingTransactions.ToList();

            // Pass the List to the ViewBag
            ViewBag.IraTransactions = IRATransactions;
            ViewBag.Ranges          = SearchTransactions.AmountRange();
            ViewBag.Dates           = SearchTransactions.DateRanges();
            ViewBag.ResultsCount    = IRATransactions.Count;
            return(View(ira));
        }
示例#21
0
        public ActionResult DepositResults(int SelectedCheckingDepositAccount, int SelectedSavingsDepositAccount, int SelectedIRADepositAccount, int SelectedStockPortfolioDepositAccount, string Date, string DepositAmount, string DepositDescription)
        {
            string  Id           = User.Identity.GetUserId();
            AppUser UserAccounts = db.Users.Find(Id);

            UserAccounts.Checkings      = UserAccounts.Checkings;
            UserAccounts.Savings        = UserAccounts.Savings;
            UserAccounts.IRA            = UserAccounts.IRA;
            UserAccounts.StockPortfolio = UserAccounts.StockPortfolio;

            //checkings
            if (UserAccounts.Checkings == null)
            {
                ViewBag.SelectedCheckingDepositAccount = "No deposit account selected";
            }
            else
            {
                List <Checking> AllCheckingDeposits = UserAccounts.Checkings;
                Checking        CheckingToDisplay   = AllCheckingDeposits.Find(a => a.CheckingID == SelectedCheckingDepositAccount);
                ViewBag.SelectedCheckingDepositAccount = CheckingToDisplay.CheckingsName;
            }

            //savings
            if (UserAccounts.Savings == null)
            {
                ViewBag.SelectedSavingsDepositAccount = "No deposit account selected";
            }
            else
            {
                List <Saving> AllSavingsDeposits = UserAccounts.Savings;
                Saving        SavingsToDisplay   = AllSavingsDeposits.Find(a => a.SavingID == SelectedSavingsDepositAccount);
                ViewBag.SelectedSavingsDepositAccount = SavingsToDisplay.SavingsName;
            }

            //ira
            if (UserAccounts.IRA == null)
            {
                ViewBag.SelectedIRADepositAccount = "No deposit account selected";
            }
            else
            {
                IRA AllIRADeposits = UserAccounts.IRA;
                IRA IRAToDisplay   = AllIRADeposits;
                ViewBag.SelectedIRADepositAccount = IRAToDisplay.IRAName;
            }

            //stock portfolio
            if (UserAccounts.StockPortfolio == null)
            {
                ViewBag.SelectedStockPortfolioDepositAccount = "No deposit account selected";
            }
            else
            {
                StockPortfolio AllStockPortfolioDeposits = UserAccounts.StockPortfolio;
                StockPortfolio StockPortfolioToDisplay   = AllStockPortfolioDeposits;
                ViewBag.SelectedStockPortfolioDepositAccount = StockPortfolioToDisplay.Name;
            }

            //textbox for date of transaction that is entered in by user
            if (Date == null || Date == "") //if date is not entered
            {
                ViewBag.Date = "Date is null";
            }
            else //they entered in a date
            {
                ViewBag.Date = "The date is " + Date;
            }

            //textbox for deposit amount
            if (DepositAmount != null && DepositAmount != "")
            {
                Decimal decDepositAmount;
                try
                {
                    decDepositAmount = Convert.ToDecimal(DepositAmount);
                }
                catch
                {
                    ViewBag.Message = DepositAmount + "is not a valid input. Please try again.";

                    //re-populate drop-downs
                    ViewBag.AllCheckingDeposits       = GetAllCheckingDepositAccounts();
                    ViewBag.AllSavingsDeposits        = GetAllSavingsDepositAccounts();
                    ViewBag.AllIRADeposits            = GetIRADepositAccount();
                    ViewBag.AllStockPortfolioDeposits = GetStockPortfolioDepositAccount();

                    //send user back to home page
                    return(View("Index"));
                }

                //if deposit amount entered is negative or zero
                if (decDepositAmount < 0 || decDepositAmount == 0)
                {
                    //add a message for the viewbag
                    ViewBag.Message = DepositAmount + "is not a valid amount. Please try again.";

                    //re-populate dropdown
                    ViewBag.AllCheckingDeposits       = GetAllCheckingDepositAccounts();
                    ViewBag.AllSavingsDeposits        = GetAllSavingsDepositAccounts();
                    ViewBag.AllIRADeposits            = GetIRADepositAccount();
                    ViewBag.AllStockPortfolioDeposits = GetStockPortfolioDepositAccount();

                    //send user back to home page
                    return(View("Index"));
                }

                //TO DO: deposits of over $5000 should be treated the same as when opening the account, meaning they must be approved by a manager before being added to the account balance
                if (decDepositAmount > 5000)
                {
                    //manager has to approve the transaction - route to manager approval
                    return(View("Index"));
                }



                //add value to view bag
                //ViewBag.UpdatedDepositAmount = "The updated deposit amount is " + UpdatedDepositBalance.ToString("n2");
            }
            else //they didn't enter in a deposit amount
            {
                ViewBag.UpdatedDepositAmount = "No deposit amount was entered.";
            }

            //textbox for description of deposit transaction
            if (DepositDescription == null || DepositDescription == "")     //if date is not entered
            {
                ViewBag.DepositDescription = "Description is null";
            }
            else     //they entered in a date
            {
                ViewBag.DepositDescription = "Description " + DepositDescription;
            }


            ViewData["AllCheckingDeposits"]       = SelectedCheckingDepositAccount;
            ViewData["AllSavingsDeposits"]        = SelectedSavingsDepositAccount;
            ViewData["AllIRADeposits"]            = SelectedIRADepositAccount;
            ViewData["AllStockPortfolioDeposits"] = SelectedStockPortfolioDepositAccount;
            return(View());
        }
        public ActionResult Resolve([Bind(Include = "DisputeID,Comments,CorrectAmount,DisputeStatus,DeleteTransaction,ManagerComments,Transaction")] Dispute dispute, Int32 SenderID, Int32 Sender, Decimal OldAmount, String Email)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            if (ModelState.IsValid)
            {
                Dispute disputeToChange = db.Disputes.Find(dispute.DisputeID);
                disputeToChange.DisputeStatus     = dispute.DisputeStatus;
                disputeToChange.DeleteTransaction = dispute.DeleteTransaction;
                Transaction transactionToChange = db.Transactions.Find(disputeToChange.Transaction.TransactionID);
                string      UserEmail           = transactionToChange.AppUser.Email;


                db.Entry(disputeToChange).State     = EntityState.Modified;
                db.Entry(transactionToChange).State = EntityState.Modified;

                if (dispute.DisputeStatus == DisputeStatus.Submitted)
                {
                    return(RedirectToAction("Index"));
                }
                else if (dispute.DisputeStatus == DisputeStatus.Rejected)
                {
                    //send rejection email
                    string  Approval = "rejected";
                    Decimal Amount   = 0m;
                    transactionToChange.ManagerEmail           = u.Email;
                    transactionToChange.ManagerComments        = dispute.ManagerComments;
                    transactionToChange.TransactionDescription = "Dispute [" + dispute.DisputeStatus.ToString() + "]: " + transactionToChange.TransactionDescription;
                    EmailSender(UserEmail, dispute.ManagerComments, Approval, Amount, dispute.Transaction.AccountSender);
                }
                else
                {
                    if (disputeToChange.DeleteTransaction == true)
                    {
                        string Approval = "Approved";
                        transactionToChange.TransactionAmount      = 0;
                        transactionToChange.ManagerEmail           = u.Email;
                        transactionToChange.ManagerComments        = dispute.ManagerComments;
                        transactionToChange.TransactionDescription = "Dispute [" + dispute.DisputeStatus.ToString() + "]: " + transactionToChange.TransactionDescription;
                        EmailSender(UserEmail, dispute.ManagerComments, Approval, dispute.CorrectAmount, dispute.Transaction.AccountSender);
                    }
                    else
                    {
                        string Approval = "Approved";
                        transactionToChange.TransactionAmount      = dispute.CorrectAmount;
                        transactionToChange.ManagerEmail           = u.Email;
                        transactionToChange.ManagerComments        = dispute.ManagerComments;
                        transactionToChange.TransactionDescription = "Dispute [" + dispute.DisputeStatus.ToString() + "]: " + transactionToChange.TransactionDescription;
                        EmailSender(UserEmail, dispute.ManagerComments, Approval, dispute.CorrectAmount, dispute.Transaction.AccountSender);
                    }
                }

                db.SaveChanges();

                if (dispute.DisputeStatus == DisputeStatus.Accepted || dispute.DisputeStatus == DisputeStatus.Adjusted)
                {
                    if (disputeToChange.DeleteTransaction == true)
                    {
                        if (transactionToChange.TypeOfTransaction == TransactionType.Deposit)
                        {
                            Checking accountToChange1 = db.Checkings.Find(SenderID);
                            if (accountToChange1 != null && accountToChange1.CheckingNumber == Sender)
                            {
                                accountToChange1.CheckingBalance += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange1).State  = EntityState.Modified;
                                db.SaveChanges();
                            }

                            Savings accountToChange2 = db.Savings.Find(SenderID);
                            if (accountToChange2 != null && accountToChange2.SavingsNumber == Sender)
                            {
                                accountToChange2.SavingsBalance += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange2).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            IRA accountToChange3 = db.IRAs.Find(SenderID);
                            if (accountToChange3 != null && accountToChange3.IRANumber == Sender)
                            {
                                accountToChange3.IRABalance     += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange3).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            StockPortfolio accountToChange4 = db.StockPortfolios.Find(SenderID);
                            if (accountToChange4 != null && accountToChange4.StockPortfolioNumber == Sender)
                            {
                                accountToChange4.CashBalance    += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange4).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }

                        else
                        {
                            Checking accountToChange1 = db.Checkings.Find(SenderID);
                            if (accountToChange1 != null && accountToChange1.CheckingNumber == Sender)
                            {
                                accountToChange1.CheckingBalance -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange1).State  = EntityState.Modified;
                                db.SaveChanges();
                            }

                            Savings accountToChange2 = db.Savings.Find(SenderID);
                            if (accountToChange2 != null && accountToChange2.SavingsNumber == Sender)
                            {
                                accountToChange2.SavingsBalance -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange2).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            IRA accountToChange3 = db.IRAs.Find(SenderID);
                            if (accountToChange3 != null && accountToChange3.IRANumber == Sender)
                            {
                                accountToChange3.IRABalance     -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange3).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            StockPortfolio accountToChange4 = db.StockPortfolios.Find(SenderID);
                            if (accountToChange4 != null && accountToChange4.StockPortfolioNumber == Sender)
                            {
                                accountToChange4.CashBalance    -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange4).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                        if (transactionToChange.TypeOfTransaction == TransactionType.Deposit)
                        {
                            Checking accountToChange1 = db.Checkings.Find(SenderID);
                            if (accountToChange1 != null && accountToChange1.CheckingNumber == Sender)
                            {
                                accountToChange1.CheckingBalance += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange1).State  = EntityState.Modified;
                                db.SaveChanges();
                            }

                            Savings accountToChange2 = db.Savings.Find(SenderID);
                            if (accountToChange2 != null && accountToChange2.SavingsNumber == Sender)
                            {
                                accountToChange2.SavingsBalance += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange2).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            IRA accountToChange3 = db.IRAs.Find(SenderID);
                            if (accountToChange3 != null && accountToChange3.IRANumber == Sender)
                            {
                                accountToChange3.IRABalance     += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange3).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            StockPortfolio accountToChange4 = db.StockPortfolios.Find(SenderID);
                            if (accountToChange4 != null && accountToChange4.StockPortfolioNumber == Sender)
                            {
                                accountToChange4.CashBalance    += (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange4).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }

                        else
                        {
                            Checking accountToChange1 = db.Checkings.Find(SenderID);
                            if (accountToChange1 != null && accountToChange1.CheckingNumber == Sender)
                            {
                                accountToChange1.CheckingBalance -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange1).State  = EntityState.Modified;
                                db.SaveChanges();
                            }

                            Savings accountToChange2 = db.Savings.Find(SenderID);
                            if (accountToChange2 != null && accountToChange2.SavingsNumber == Sender)
                            {
                                accountToChange2.SavingsBalance -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange2).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            IRA accountToChange3 = db.IRAs.Find(SenderID);
                            if (accountToChange3 != null && accountToChange3.IRANumber == Sender)
                            {
                                accountToChange3.IRABalance     -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange3).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            StockPortfolio accountToChange4 = db.StockPortfolios.Find(SenderID);
                            if (accountToChange4 != null && accountToChange4.StockPortfolioNumber == Sender)
                            {
                                accountToChange4.CashBalance    -= (disputeToChange.CorrectAmount - OldAmount);
                                db.Entry(accountToChange4).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                    }
                }


                return(RedirectToAction("Index"));
            }
            ViewBag.DisputeID = new SelectList(db.Transactions, "TransactionID", "TransactionDescription", dispute.DisputeID);
            return(View(dispute));
        }
        public ActionResult Index(string SelectedAccount, string SelectedAmount, string TransactionDate)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            List <string> parsed = SelectedAccount.Split(',').ToList <string>();

            Console.WriteLine(parsed);

            string SelectedAccountType = parsed[0];
            int    Id            = Convert.ToInt32(parsed[3]);
            int    AccountNumber = Convert.ToInt32(parsed[1]);

            if (Convert.ToDecimal(SelectedAmount) > 0)
            {
                if (SelectedAccountType == "Checking")
                {
                    if (ModelState.IsValid)
                    {
                        //if the amount is over pass it onto the pending transaction page
                        //do not add any amount to their account
                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            Pending pendingToChange = new Pending();
                            pendingToChange.AccountNumber = AccountNumber;
                            pendingToChange.AccountType   = SelectedAccountType;
                            pendingToChange.AppUser       = u;
                            pendingToChange.PendingStatus = PendingStatus.Submitted;
                            pendingToChange.Amount        = Convert.ToDecimal(SelectedAmount);
                            db.Pendings.Add(pendingToChange);
                        }
                        else
                        {
                            //Find associated account
                            Checking accountToChange = db.Checkings.Find(Id);
                            accountToChange.CheckingBalance += Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State  = EntityState.Modified;
                        }

                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = u;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                        transactionToChange.TransactionDescription = "this is a deposit what more do you want";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                        transactionToChange.AccountSender     = AccountNumber;

                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                        }
                        else
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                        }

                        db.Transactions.Add(transactionToChange);

                        db.SaveChanges();
                        return(RedirectToAction("Index", "ManageAccounts"));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "Savings")
                {
                    if (ModelState.IsValid)
                    {
                        //if the amount is over pass it onto the pending transaction page
                        //do not add any amount to their account
                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            Pending pendingToChange = new Pending();
                            pendingToChange.AccountNumber = AccountNumber;
                            pendingToChange.AccountType   = SelectedAccountType;
                            pendingToChange.AppUser       = u;
                            pendingToChange.PendingStatus = PendingStatus.Submitted;
                            pendingToChange.Amount        = Convert.ToDecimal(SelectedAmount);
                            db.Pendings.Add(pendingToChange);
                        }
                        else
                        {
                            //Find associated account
                            Savings accountToChange = db.Savings.Find(Id);
                            accountToChange.SavingsBalance += Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State = EntityState.Modified;
                        }

                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = u;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                        transactionToChange.TransactionDescription = "this is a deposit what more do you want";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                        transactionToChange.AccountSender     = AccountNumber;

                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                        }
                        else
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                        }

                        db.Transactions.Add(transactionToChange);

                        db.SaveChanges();
                        return(RedirectToAction("Index", "ManageAccounts"));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "IRA")
                {
                    if (ModelState.IsValid)
                    {
                        //Find associated account
                        IRA accountToChange = db.IRAs.Find(Id);
                        if ((accountToChange.Contribution + Convert.ToDecimal(SelectedAmount)) > 5000.0m)
                        {
                            return(RedirectToAction("DepositLimit", new { SelectedAmount = (5000.0m - accountToChange.Contribution), SelectedAccount }));
                        }
                        else
                        {
                            accountToChange.IRABalance   += Convert.ToDecimal(SelectedAmount);
                            accountToChange.Contribution += Convert.ToDecimal(SelectedAmount);
                        }
                        db.Entry(accountToChange).State = EntityState.Modified;


                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = u;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                        transactionToChange.TransactionDescription = "this is a deposit what more do you want";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                        transactionToChange.AccountSender     = AccountNumber;

                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                        }
                        else
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                        }

                        db.Transactions.Add(transactionToChange);

                        db.SaveChanges();
                        return(RedirectToAction("Index", "ManageAccounts"));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "Stock")
                {
                    if (ModelState.IsValid)
                    {
                        //if the amount is over pass it onto the pending transaction page
                        //do not add any amount to their account
                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            Pending pendingToChange = new Pending();
                            pendingToChange.AccountNumber = AccountNumber;
                            pendingToChange.AccountType   = SelectedAccountType;
                            pendingToChange.AppUser       = u;
                            pendingToChange.PendingStatus = PendingStatus.Submitted;
                            pendingToChange.Amount        = Convert.ToDecimal(SelectedAmount);
                            db.Pendings.Add(pendingToChange);
                        }
                        else
                        {
                            //Find associated account
                            StockPortfolio accountToChange = db.StockPortfolios.Find(Id);
                            accountToChange.CashBalance    += Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State = EntityState.Modified;
                        }


                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = u;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                        transactionToChange.TransactionDescription = "this is a deposit what more do you want";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                        transactionToChange.AccountSender     = AccountNumber;

                        if (Convert.ToDecimal(SelectedAmount) > 5000.0m)
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                        }
                        else
                        {
                            transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                        }

                        db.Transactions.Add(transactionToChange);

                        db.SaveChanges();
                        return(RedirectToAction("Index", "ManageAccounts"));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                Danger(string.Format("Warning: The Deposit must be greater than 0."), true);
                return(RedirectToAction("Index"));
            }
        }
示例#24
0
        public ActionResult Index(string SelectedType, string StartingBalance, string SelectedName, TransactionStatus?ApprovalStatus)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            var iraquery = (from c in db.IRAs
                            select c.IRANumber).Max();
            var stockquery = (from c in db.StockPortfolios
                              select c.StockPortfolioNumber).Max();
            var checkingquery = (from c in db.Checkings
                                 select c.CheckingNumber).Max();
            var savingsquery = (from c in db.Savings
                                select c.SavingsNumber).Max();


            int latest = (Math.Max(iraquery, Math.Max(stockquery, Math.Max(checkingquery, savingsquery))));

            if (SelectedType == "Checking")
            {
                Checking newcheck = new Checking();
                newcheck.AppUser = u;
                if (Convert.ToDecimal(StartingBalance) > 5000)
                {
                    newcheck.CheckingName    = "Longhorn Bank Checking";
                    newcheck.CheckingBalance = 0.0m;
                    Pending pendingToChange = new Pending();
                    pendingToChange.AccountNumber = latest + 1;
                    pendingToChange.AccountType   = SelectedType;
                    pendingToChange.AppUser       = u;
                    pendingToChange.PendingStatus = PendingStatus.Submitted;
                    pendingToChange.Amount        = Convert.ToDecimal(Convert.ToDecimal(StartingBalance));
                    db.Pendings.Add(pendingToChange);
                }
                else
                {
                    newcheck.CheckingBalance = Convert.ToDecimal(StartingBalance);
                }
                newcheck.CheckingNumber = Convert.ToInt32(latest + 1);
                if (SelectedName != null && SelectedName != "")
                {
                    newcheck.CheckingName = SelectedName;
                }
                else
                {
                    newcheck.CheckingName = "Longhorn Bank Checking";
                }
                db.Checkings.Add(newcheck);
                db.SaveChanges();

                //Create a transaction
                Transaction transactionToChange = new Transaction();
                transactionToChange.AppUser                = u;
                transactionToChange.TransactionAmount      = Convert.ToDecimal(StartingBalance);
                transactionToChange.TransactionDescription = "Initial Deposit";
                // TODO: Not today, should be user input
                transactionToChange.TransactionDate   = DateTime.Today;
                transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                transactionToChange.AccountSender     = newcheck.CheckingNumber;

                if (Convert.ToDecimal(StartingBalance) > 5000.0m)
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                }
                else
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                }

                db.Transactions.Add(transactionToChange);
                db.SaveChanges();

                Success(string.Format("Successfully applied for account."), true);
                return(RedirectToAction("Index", "ManageAccounts"));
            }
            else if (SelectedType == "Savings")
            {
                Savings newsav = new Savings();
                newsav.AppUser = u;
                if (Convert.ToDecimal(StartingBalance) > 5000)
                {
                    newsav.SavingsName    = "Longhorn Bank Savings";
                    newsav.SavingsBalance = 0.0m;
                    Pending pendingToChange = new Pending();
                    pendingToChange.AccountNumber = latest + 1;
                    pendingToChange.AccountType   = SelectedType;
                    pendingToChange.AppUser       = u;
                    pendingToChange.PendingStatus = PendingStatus.Submitted;
                    pendingToChange.Amount        = Convert.ToDecimal(Convert.ToDecimal(StartingBalance));
                    db.Pendings.Add(pendingToChange);
                }
                else
                {
                    newsav.SavingsBalance = Convert.ToDecimal(StartingBalance);
                }
                newsav.SavingsNumber = Convert.ToInt32(latest + 1);
                if (SelectedName != null && SelectedName != "")
                {
                    newsav.SavingsName = SelectedName;
                }
                else
                {
                    newsav.SavingsName = "Longhorn Bank Savings";
                }
                db.Savings.Add(newsav);
                db.SaveChanges();

                //Create a transaction
                Transaction transactionToChange = new Transaction();
                transactionToChange.AppUser                = u;
                transactionToChange.TransactionAmount      = Convert.ToDecimal(StartingBalance);
                transactionToChange.TransactionDescription = "Initial Deposit";
                // TODO: Not today, should be user input
                transactionToChange.TransactionDate   = DateTime.Today;
                transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                transactionToChange.AccountSender     = newsav.SavingsNumber;

                if (Convert.ToDecimal(StartingBalance) > 5000.0m)
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                }
                else
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                }

                db.Transactions.Add(transactionToChange);
                db.SaveChanges();

                Success(string.Format("Successfully applied for account."), true);
                return(RedirectToAction("Index", "ManageAccounts"));
            }
            else if (SelectedType == "IRA")
            {
                if (Convert.ToDecimal(StartingBalance) != 0 && (DateTime.Today - u.DOB).Days > 25567.5m)
                {
                    return(RedirectToAction("ContributionAge"));
                }
                if (Convert.ToDecimal(StartingBalance) > 5000)
                {
                    return(RedirectToAction("ContributionLimit", new { StartingBalance = "5000" }));
                }
                else
                {
                    IRA newira = new IRA();
                    newira.AppUser      = u;
                    newira.IRAName      = "Longhorn Bank IRA";
                    newira.IRABalance   = Convert.ToDecimal(StartingBalance);
                    newira.Contribution = Convert.ToDecimal(StartingBalance);
                    newira.IRANumber    = Convert.ToInt32(latest + 1);
                    if (SelectedName != null && SelectedName != "")
                    {
                        newira.IRAName = SelectedName;
                    }
                    else
                    {
                        newira.IRAName = "Longhorn Bank IRA";
                    }
                    db.IRAs.Add(newira);

                    //Create a transaction
                    Transaction transactionToChange = new Transaction();
                    transactionToChange.AppUser                = u;
                    transactionToChange.TransactionAmount      = Convert.ToDecimal(StartingBalance);
                    transactionToChange.TransactionDescription = "Initial Deposit";
                    // TODO: Not today, should be user input
                    transactionToChange.TransactionDate   = DateTime.Today;
                    transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                    transactionToChange.AccountSender     = newira.IRANumber;

                    if (Convert.ToDecimal(StartingBalance) > 5000.0m)
                    {
                        transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                    }
                    else
                    {
                        transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                    }

                    db.Transactions.Add(transactionToChange);
                    db.SaveChanges();

                    db.SaveChanges();
                }
                Success(string.Format("Successfully applied for account."), true);
                return(RedirectToAction("Index", "ManageAccounts"));
            }
            else if (SelectedType == "Stock")
            {
                StockPortfolio newstock = new StockPortfolio();
                newstock.AppUser   = u;
                newstock.TotalFees = 0;
                if (Convert.ToDecimal(StartingBalance) > 5000)
                {
                    newstock.StockPortfolioName = "Longhorn Bank Stock Portfolio";
                    newstock.CashBalance        = 0.0m;
                    Pending pendingToChange = new Pending();
                    pendingToChange.AccountNumber = latest + 1;
                    pendingToChange.AccountType   = SelectedType;
                    pendingToChange.AppUser       = u;
                    pendingToChange.PendingStatus = PendingStatus.Submitted;
                    pendingToChange.Amount        = Convert.ToDecimal(Convert.ToDecimal(StartingBalance));
                    db.Pendings.Add(pendingToChange);
                }
                else
                {
                    newstock.CashBalance = Convert.ToDecimal(StartingBalance);
                }
                newstock.StockPortfolioNumber = Convert.ToInt32(latest + 1);
                if (SelectedName != null && SelectedName != "")
                {
                    newstock.StockPortfolioName = SelectedName;
                }
                else
                {
                    newstock.StockPortfolioName = "Longhorn Bank Stock Portfolio";
                }
                newstock.TotalFees     = 0m;
                newstock.StockBalance  = 0m;
                newstock.BalanceStatus = "UnBalanced";
                newstock.CanBuy        = false;
                db.StockPortfolios.Add(newstock);
                db.SaveChanges();

                //Create a transaction
                Transaction transactionToChange = new Transaction();
                transactionToChange.AppUser                = u;
                transactionToChange.TransactionAmount      = Convert.ToDecimal(StartingBalance);
                transactionToChange.TransactionDescription = "Initial Deposit";
                // TODO: Not today, should be user input
                transactionToChange.TransactionDate   = DateTime.Today;
                transactionToChange.TypeOfTransaction = TransactionType.Deposit;
                transactionToChange.AccountSender     = newstock.StockPortfolioNumber;

                if (Convert.ToDecimal(StartingBalance) > 5000.0m)
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Pending;
                }
                else
                {
                    transactionToChange.ApprovalStatus = TransactionStatus.Approved;
                }

                db.Transactions.Add(transactionToChange);
                db.SaveChanges();

                Success(string.Format("Successfully applied for account."), true);
                return(RedirectToAction("Index", "ManageAccounts"));
            }
            else
            {
                return(RedirectToAction("Index", "ManageAccounts"));
            }
        }
示例#25
0
        public static String AutoNumber(AppDbContext db)
        {
            // Create a list to hold all of the account number
            List <Decimal> AccountNumList = new List <Decimal>();

            // Find the account with the largest account number
            var SPQ = from sp in db.StockAccount
                      where sp.AccountNumber != null
                      select sp;

            SPQ = SPQ.OrderByDescending(s => s.StockAccountID);

            StockAccount SP = SPQ.FirstOrDefault();

            if (SP != null)
            {
                Decimal SPAN = Convert.ToDecimal(SP.AccountNumber);
                AccountNumList.Add(SPAN);
            }


            var CAQ = from ca in db.CheckingAccount
                      select ca;

            CAQ = CAQ.OrderByDescending(c => c.CheckingID);

            Checking CA = CAQ.FirstOrDefault();

            if (CA != null)
            {
                Decimal CAN = Convert.ToDecimal(CA.AccountNumber);
                AccountNumList.Add(CAN);
            }

            var SAQ = from sa in db.SavingsAccount
                      select sa;

            SAQ = SAQ.OrderByDescending(s => s.SavingID);

            Saving SA = SAQ.FirstOrDefault();

            if (SA != null)
            {
                Decimal SAN = Convert.ToDecimal(SA.AccountNumber);
                AccountNumList.Add(SAN);
            }

            var IQ = from ira in db.IRAAccount
                     select ira;

            IQ = IQ.OrderByDescending(s => s.IRAID);

            IRA I = IQ.FirstOrDefault();

            if (I != null)
            {
                Decimal IN = Convert.ToDecimal(I.AccountNumber);
                AccountNumList.Add(IN);
            }

            // Variable to hold the max
            Decimal MaxAccNum = 0;

            // Loop through each Account Number and find the biggest one
            foreach (Decimal AccNum in AccountNumList)
            {
                if (AccNum > MaxAccNum)
                {
                    MaxAccNum = AccNum;
                }
            }

            MaxAccNum += 1;
            return(MaxAccNum.ToString());
        }
        public ActionResult DepositResults(int SelectedCheckingDepositAccount, int SelectedSavingsDepositAccount, int SelectedIRADepositAccount, int SelectedStockPortfolioDepositAccount, DateTime Date, string DepositAmount, string DepositDescription)
        {
            string  Id           = User.Identity.GetUserId();
            AppUser UserAccounts = db.Users.Find(Id);

            UserAccounts.Checkings      = UserAccounts.Checkings;
            UserAccounts.Savings        = UserAccounts.Savings;
            UserAccounts.IRA            = UserAccounts.IRA;
            UserAccounts.StockPortfolio = UserAccounts.StockPortfolio;

            //checkings
            if (UserAccounts.Checkings == null)
            {
                ViewBag.SelectedCheckingDepositAccount = "No deposit account selected";
            }
            else
            {
                List <Checking> AllCheckingDeposits = UserAccounts.Checkings;
                Checking        CheckingToDisplay   = AllCheckingDeposits.Find(a => a.CheckingID == SelectedCheckingDepositAccount);
                ViewBag.SelectedCheckingDepositAccount = CheckingToDisplay.CheckingsName;
            }

            //savings
            if (UserAccounts.Savings == null)
            {
                ViewBag.SelectedSavingsDepositAccount = "No deposit account selected";
            }
            else
            {
                List <Saving> AllSavingsDeposits = UserAccounts.Savings;
                Saving        SavingsToDisplay   = AllSavingsDeposits.Find(a => a.SavingID == SelectedSavingsDepositAccount);
                ViewBag.SelectedSavingsDepositAccount = SavingsToDisplay.SavingsName;
            }

            //ira
            if (UserAccounts.IRA == null)
            {
                ViewBag.SelectedIRADepositAccount = "No deposit account selected";
            }
            else
            {
                IRA AllIRADeposits = UserAccounts.IRA;
                IRA IRAToDisplay   = AllIRADeposits;
                ViewBag.SelectedIRADepositAccount = IRAToDisplay.IRAName;
            }

            //stock portfolio
            if (UserAccounts.StockPortfolio == null)
            {
                ViewBag.SelectedStockPortfolioDepositAccount = "No deposit account selected";
            }
            else
            {
                StockPortfolio AllStockPortfolioDeposits = UserAccounts.StockPortfolio;
                StockPortfolio StockPortfolioToDisplay   = AllStockPortfolioDeposits;
                ViewBag.SelectedStockPortfolioDepositAccount = StockPortfolioToDisplay.Name;
            }

            //textbox for date of transaction that is entered in by user
            if (Date == null) //if date is not entered
            {
                ViewBag.Date = "Date is null";
            }
            else //they entered in a date
            {
                ViewBag.Date = "The date is " + Date;
            }

            //textbox for deposit amount
            if (DepositAmount != null && DepositAmount != "")
            {
                Decimal decDepositAmount;
                try
                {
                    decDepositAmount = Convert.ToDecimal(DepositAmount);
                }
                catch
                {
                    ViewBag.Message = DepositAmount + "is not a valid input. Please try again.";

                    //re-populate drop-downs
                    ViewBag.AllCheckingDeposits       = GetAllCheckingDepositAccounts();
                    ViewBag.AllSavingsDeposits        = GetAllSavingsDepositAccounts();
                    ViewBag.AllIRADeposits            = GetIRADepositAccount();
                    ViewBag.AllStockPortfolioDeposits = GetStockPortfolioDepositAccount();

                    //send user back to home page
                    return(View("Index"));
                }

                //add value to view bag
                ViewBag.UpdatedDepositAmount = "The updated deposit amount is " + decDepositAmount.ToString("n2");
            }
            else //they didn't enter in a deposit amount
            {
                ViewBag.UpdatedDepositAmount = "No deposit amount was entered.";
            }

            //textbox for description of deposit transaction
            if (DepositDescription == null || DepositDescription == "") //if date is not entered
            {
                ViewBag.DepositDescription = "Description is null";
            }
            else //they entered in a date
            {
                ViewBag.DepositDescription = "Description " + DepositDescription;
            }


            ViewData["AllCheckingDeposits"]       = SelectedCheckingDepositAccount;
            ViewData["AllSavingsDeposits"]        = SelectedSavingsDepositAccount;
            ViewData["AllIRADeposits"]            = SelectedIRADepositAccount;
            ViewData["AllStockPortfolioDeposits"] = SelectedStockPortfolioDepositAccount;
            return(View());
        }
示例#27
0
        public ActionResult Create([Bind(Include = "IRAID, Balance, Name")] IRA ira)
        {
            var CustomerQuery = from c in db.Users
                                where c.UserName == User.Identity.Name
                                select c;

            AppUser customer = CustomerQuery.FirstOrDefault();

            if (customer == null)
            {
                return(HttpNotFound());
            }

            if (ModelState.IsValid)
            {
                ira.Customer = customer;

                ira.AccountNumber = Utility.AccountNumber.AutoNumber(db);

                if (ira.Name == null)
                {
                    ira.Name = "Longhorn IRA";
                }

                db.IRAAccount.Add(ira);
                db.SaveChanges();

                // check to see if the deposit amount is over $5000
                ApprovedorNeedsApproval FirstDeposit;

                var IRAQuery = from ia in db.IRAAccount
                               where ia.AccountNumber == ira.AccountNumber
                               select ia;
                IRA        CustomerIRAAccount = IRAQuery.FirstOrDefault();
                List <IRA> CustomerIRAList    = new List <IRA>();
                CustomerIRAList.Add(CustomerIRAAccount);
                if (ira.Balance > 5000m)
                {
                    IRA SelectedIra = db.IRAAccount.Find(CustomerIRAAccount.IRAID);
                    SelectedIra.Balance         = 0;
                    db.Entry(SelectedIra).State = EntityState.Modified;
                    db.SaveChanges();
                    ira.Balance      = 0;
                    ira.RunningTotal = 0;
                    return(RedirectToAction("IRAError", "bankingTransactions", new { Description = "Initial Deposit to Cash Balance", Date = DateTime.Today, Amount = 0, IRAID = SelectedIra.IRAID, CID = 0, SID = 0, StAID = 0, btID = 0, type = BankingTranactionType.Deposit }));
                }

                else
                {
                    FirstDeposit = ApprovedorNeedsApproval.Approved;
                    // Create a new transaction
                }
                ira.RunningTotal = ira.Balance;

                BankingTransaction InitialDeposit = new BankingTransaction
                {
                    Amount                 = ira.Balance,
                    ApprovalStatus         = FirstDeposit,
                    BankingTransactionType = BankingTranactionType.Deposit,
                    Description            = "Initial Deposit to Cash Balance",
                    TransactionDate        = DateTime.Today,
                    TransactionDispute     = DisputeStatus.NotDisputed,
                    IRAAccount             = CustomerIRAList
                };

                // Add the transaction to the database
                db.BankingTransaction.Add(InitialDeposit);
                db.SaveChanges();

                return(RedirectToAction("Portal", "Home", new { id = customer.Id }));
            }

            return(View(ira));
        }
示例#28
0
        public ActionResult WithdrawLimit(string TransactionDate, string SelectedAccount, string SelectedAmount, string SelectedInclude)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            List <string> parsed = SelectedAccount.Split(',').ToList <string>();

            Console.WriteLine(parsed);

            string SelectedAccountType = parsed[0];
            int    Id            = Convert.ToInt32(parsed[3]);
            int    AccountNumber = Convert.ToInt32(parsed[1]);

            if (ModelState.IsValid)
            {
                if (Convert.ToDecimal(SelectedAmount) > 3000)
                {
                    return(RedirectToAction("WithdrawLimit", new { SelectedAmount = "3000", SelectedAccount }));
                }
                else
                {
                    if (SelectedInclude == "Yes")
                    {
                        //Find associated account
                        IRA accountToChange = db.IRAs.Find(Id);
                        accountToChange.IRABalance     -= Convert.ToDecimal(SelectedAmount);
                        db.Entry(accountToChange).State = EntityState.Modified;

                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = accountToChange.AppUser;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount) - 30.0m;
                        transactionToChange.TransactionDescription = "unqualified distribution";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Withdrawal;
                        transactionToChange.AccountSender     = AccountNumber;
                        db.Transactions.Add(transactionToChange);

                        //record fee
                        Transaction feeToChange = new Transaction();
                        feeToChange.AccountSenderID        = Id;
                        feeToChange.AppUser                = accountToChange.AppUser;
                        feeToChange.TransactionAmount      = 30.0m;
                        feeToChange.TransactionDescription = "unqualified distribution fee";
                        // TODO: Not today, should be user input
                        feeToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        feeToChange.TypeOfTransaction = TransactionType.Fee;
                        feeToChange.AccountSender     = AccountNumber;
                        db.Transactions.Add(feeToChange);
                    }
                    else
                    {
                        //Find associated account
                        IRA accountToChange = db.IRAs.Find(Id);
                        accountToChange.IRABalance     -= (Convert.ToDecimal(SelectedAmount) + 30.0m);
                        db.Entry(accountToChange).State = EntityState.Modified;

                        //Create a transaction
                        Transaction transactionToChange = new Transaction();
                        transactionToChange.AccountSenderID        = Id;
                        transactionToChange.AppUser                = accountToChange.AppUser;
                        transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                        transactionToChange.TransactionDescription = "unqualified distribution";
                        // TODO: Not today, should be user input
                        transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        transactionToChange.TypeOfTransaction = TransactionType.Fee;
                        transactionToChange.AccountSender     = AccountNumber;
                        db.Transactions.Add(transactionToChange);

                        //record fee
                        Transaction feeToChange = new Transaction();
                        feeToChange.AccountSenderID        = Id;
                        feeToChange.AppUser                = accountToChange.AppUser;
                        feeToChange.TransactionAmount      = 30.0m;
                        feeToChange.TransactionDescription = "unqualified distribution fee";
                        // TODO: Not today, should be user input
                        feeToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                        feeToChange.TypeOfTransaction = TransactionType.Withdrawal;
                        feeToChange.AccountSender     = AccountNumber;
                        db.Transactions.Add(feeToChange);
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Index", "ManageAccounts"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Accept([Bind(Include = "DisputeID,Status,DisputeComment,CorrectAmount,DeleteTransaction")] Dispute dispute, int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            dispute = db.Disputes.Find(id);
            Transaction transaction = db.Transactions.Find(dispute.Transactions.TransactionID);

            if (transaction.TransactionType == TransactionType.deposit)
            {
                if (SearchChecking(transaction.OriginID))
                {
                    Checking check = GetChecking(transaction.OriginID);
                    check.CheckingBalance -= transaction.Amount;
                    check.CheckingBalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchSaving(transaction.OriginID))
                {
                    Saving save = GetSaving(transaction.OriginID);
                    save.SavingBalance -= transaction.Amount;
                    save.SavingBalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchIRA(transaction.OriginID))
                {
                    IRA ira = GetIRA(transaction.OriginID);
                    ira.IRABalance -= transaction.Amount;
                    ira.IRABalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
            }
            if (transaction.TransactionType == TransactionType.withdrawal)
            {
                if (SearchChecking(transaction.OriginID))
                {
                    Checking check = GetChecking(transaction.OriginID);
                    check.CheckingBalance += transaction.Amount;
                    check.CheckingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchSaving(transaction.OriginID))
                {
                    Saving save = GetSaving(transaction.OriginID);
                    save.SavingBalance += transaction.Amount;
                    save.SavingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchIRA(transaction.OriginID))
                {
                    IRA ira = GetIRA(transaction.OriginID);
                    ira.IRABalance += transaction.Amount;
                    ira.IRABalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
            }
            if (transaction.TransactionType == TransactionType.transfer)
            {
                if (SearchChecking(transaction.OriginID))
                {
                    Checking check = GetChecking(transaction.OriginID);
                    check.CheckingBalance += transaction.Amount;
                    check.CheckingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchSaving(transaction.OriginID))
                {
                    Saving save = GetSaving(transaction.OriginID);
                    save.SavingBalance += transaction.Amount;
                    save.SavingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchIRA(transaction.OriginID))
                {
                    IRA ira = GetIRA(transaction.OriginID);
                    ira.IRABalance += transaction.Amount;
                    ira.IRABalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchChecking(transaction.DestinationID))
                {
                    Checking check = GetChecking(transaction.DestinationID);
                    check.CheckingBalance -= transaction.Amount;
                    check.CheckingBalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchSaving(transaction.DestinationID))
                {
                    Saving save = GetSaving(transaction.DestinationID);
                    save.SavingBalance -= transaction.Amount;
                    save.SavingBalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchIRA(transaction.DestinationID))
                {
                    IRA ira = GetIRA(transaction.DestinationID);
                    ira.IRABalance -= transaction.Amount;
                    ira.IRABalance += dispute.CorrectAmount;
                    db.SaveChanges();
                }
            }
            if (transaction.TransactionType == TransactionType.fee)
            {
                if (SearchChecking(transaction.OriginID))
                {
                    Checking check = GetChecking(transaction.OriginID);
                    check.CheckingBalance += transaction.Amount;
                    check.CheckingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchSaving(transaction.OriginID))
                {
                    Saving save = GetSaving(transaction.OriginID);
                    save.SavingBalance += transaction.Amount;
                    save.SavingBalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
                if (SearchIRA(transaction.OriginID))
                {
                    IRA ira = GetIRA(transaction.OriginID);
                    ira.IRABalance += transaction.Amount;
                    ira.IRABalance -= dispute.CorrectAmount;
                    db.SaveChanges();
                }
            }
            dispute.Status = DisputeStatus.Accepted;
            if (dispute.DeleteTransaction == global::Delete.Yes)
            {
                db.Transactions.Remove(transaction);
            }
            db.SaveChanges();
            return(RedirectToAction("Index", "Disputes"));
        }
示例#30
0
        public ActionResult Index(string SelectedAccount, string SelectedAmount, string TransactionDate)
        {
            string  user = User.Identity.GetUserId();
            AppUser u    = db.Users.Find(user);

            List <string> parsed = SelectedAccount.Split(',').ToList <string>();

            Console.WriteLine(parsed);

            string SelectedAccountType = parsed[0];
            int    Id            = Convert.ToInt32(parsed[3]);
            int    AccountNumber = Convert.ToInt32(parsed[1]);

            if (Convert.ToDecimal(SelectedAmount) > 0)
            {
                if (SelectedAccountType == "Checking")
                {
                    if (ModelState.IsValid)
                    {
                        //Find associated account
                        Checking accountToChange = db.Checkings.Find(Id);
                        if (Convert.ToDecimal(SelectedAmount) <= accountToChange.CheckingBalance)
                        {
                            accountToChange.CheckingBalance -= Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State  = EntityState.Modified;

                            //Create a transaction
                            Transaction transactionToChange = new Transaction();
                            transactionToChange.AccountSenderID        = Id;
                            transactionToChange.AppUser                = accountToChange.AppUser;
                            transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                            transactionToChange.TransactionDescription = "this is a withdrawal what more do you want";
                            // TODO: Not today, should be user input
                            transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                            transactionToChange.TypeOfTransaction = TransactionType.Withdrawal;
                            transactionToChange.AccountSender     = AccountNumber;
                            db.Transactions.Add(transactionToChange);

                            db.SaveChanges();
                            return(RedirectToAction("Index", "ManageAccounts"));
                        }
                        else
                        {
                            Danger(string.Format("You may not withdraw more than your account balance."), true);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "Savings")
                {
                    if (ModelState.IsValid)
                    {
                        //Find associated account
                        Savings accountToChange = db.Savings.Find(Id);
                        if (Convert.ToDecimal(SelectedAmount) <= accountToChange.SavingsBalance)
                        {
                            accountToChange.SavingsBalance -= Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State = EntityState.Modified;

                            //Create a transaction
                            Transaction transactionToChange = new Transaction();
                            transactionToChange.AccountSenderID        = Id;
                            transactionToChange.AppUser                = accountToChange.AppUser;
                            transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                            transactionToChange.TransactionDescription = "this is a withdrawal what more do you want";
                            // TODO: Not today, should be user input
                            transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                            transactionToChange.TypeOfTransaction = TransactionType.Withdrawal;
                            transactionToChange.AccountSender     = AccountNumber;
                            db.Transactions.Add(transactionToChange);

                            db.SaveChanges();
                            return(RedirectToAction("Index", "ManageAccounts"));
                        }
                        else
                        {
                            Danger(string.Format("You may not withdraw more than your account balance."), true);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "IRA")
                {
                    if (ModelState.IsValid)
                    {
                        if ((Convert.ToDateTime(TransactionDate) - u.DOB).Days <= 23741.25m)
                        {
                            if (Convert.ToDecimal(SelectedAmount) > 3000)
                            {
                                return(RedirectToAction("WithdrawLimit", new { SelectedAmount = "3000", SelectedAccount }));
                            }
                            else
                            {
                                return(RedirectToAction("WithdrawLimit", new { SelectedAmount, SelectedAccount }));
                            }
                        }
                        else
                        {
                            //Find associated account
                            IRA accountToChange = db.IRAs.Find(Id);
                            if (Convert.ToDecimal(SelectedAmount) <= accountToChange.IRABalance)
                            {
                                accountToChange.IRABalance     -= Convert.ToDecimal(SelectedAmount);
                                db.Entry(accountToChange).State = EntityState.Modified;

                                //Create a transaction
                                Transaction transactionToChange = new Transaction();
                                transactionToChange.AccountSenderID        = Id;
                                transactionToChange.AppUser                = accountToChange.AppUser;
                                transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                                transactionToChange.TransactionDescription = "this is a withdrawal what more do you want";
                                // TODO: Not today, should be user input
                                transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                                transactionToChange.TypeOfTransaction = TransactionType.Withdrawal;
                                transactionToChange.AccountSender     = AccountNumber;
                                db.Transactions.Add(transactionToChange);
                                db.SaveChanges();
                                return(RedirectToAction("Index", "ManageAccounts"));
                            }
                            else
                            {
                                Danger(string.Format("You may not withdraw more than your account balance."), true);
                                return(RedirectToAction("Index"));
                            }
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else if (SelectedAccountType == "Stock")
                {
                    if (ModelState.IsValid)
                    {
                        //Find associated account
                        StockPortfolio accountToChange = db.StockPortfolios.Find(Id);
                        if (Convert.ToDecimal(SelectedAmount) <= accountToChange.CashBalance)
                        {
                            accountToChange.CashBalance    -= Convert.ToDecimal(SelectedAmount);
                            db.Entry(accountToChange).State = EntityState.Modified;

                            //Create a transaction
                            Transaction transactionToChange = new Transaction();
                            transactionToChange.AccountSenderID        = Id;
                            transactionToChange.AppUser                = accountToChange.AppUser;
                            transactionToChange.TransactionAmount      = Convert.ToDecimal(SelectedAmount);
                            transactionToChange.TransactionDescription = "this is a withdrawal what more do you want";
                            // TODO: Not today, should be user input
                            transactionToChange.TransactionDate   = Convert.ToDateTime(TransactionDate);
                            transactionToChange.TypeOfTransaction = TransactionType.Withdrawal;
                            transactionToChange.AccountSender     = AccountNumber;
                            db.Transactions.Add(transactionToChange);

                            db.SaveChanges();
                            return(RedirectToAction("Index", "ManageAccounts"));
                        }
                        else
                        {
                            Danger(string.Format("You may not withdraw more than your account balance."), true);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                Danger(string.Format("Warning: The Deposit must be greater than 0."), true);
                return(RedirectToAction("Index"));
            }
        }