// 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)); }
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 })); }
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")); }
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")); }
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)); }
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)); }
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)); }
// 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)); }
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 })); }
// 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)); }
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()); }
// 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)); }
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")); } }
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")); } }
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()); }
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)); }
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")); }
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")); } }