public ActionResult ClearHistory() { using (StockContext db = new StockContext()) { IEnumerable<StockTransaction> transactions = db.StockTransactions.ToList().Where(t => t.FBID == (String)Session["FBID"]); foreach(StockTransaction t in transactions){ db.StockTransactions.Remove(t); } db.SaveChanges(); } //return RedirectToLocal("/Stocks/History"); return RedirectToAction("History", "Stocks"); }
public ActionResult BuyStock(TransactionModel model) { if (ModelState.IsValid && model.Ticker != "None") { using (StockContext db = new StockContext()) { Stock s = getOneStock(model.Ticker); StockTransaction st = new StockTransaction { FBID = (String)Session["FBID"], Ticker = model.Ticker, Price = s.CurrentPrice * -1, Shares = model.Amount, TransactionDate = DateTime.Now }; db.StockTransactions.Add(st); db.SaveChanges(); } // getNetworth(); //return RedirectToLocal("/Stocks/Index"); return RedirectToAction("Index", "Stocks"); } // If we got this far, something failed, redisplay form // ModelState.AddModelError("Amount", "The amount provided is invalid."); // return View("Index", model); return RedirectToAction("Index", "Stocks"); }
public ActionResult UploadHistory(HttpPostedFileBase uploadFile) { if (uploadFile == null) { //return RedirectToLocal("/Stocks/History"); return RedirectToAction("History", "Stocks"); } StreamReader csvreader = new StreamReader(uploadFile.InputStream); using (StockContext db = new StockContext()) { IEnumerable<StockTransaction> transactions = db.StockTransactions.ToList().Where(t => t.FBID == (String)Session["FBID"]); foreach (StockTransaction t in transactions) { db.StockTransactions.Remove(t); } db.SaveChanges(); } while (!csvreader.EndOfStream) { var line = csvreader.ReadLine(); var values = line.Split(','); Debug.WriteLine(values[2] + " " + values[3] + " " + values[4]); Debug.WriteLine(line); using (StockContext db = new StockContext()) { StockTransaction st = new StockTransaction { FBID = (String)Session["FBID"], Ticker = values[2], Price = Convert.ToDouble(values[4]), Shares = Convert.ToInt32(values[3]), TransactionDate = Convert.ToDateTime(values[5])}; db.StockTransactions.Add(st); db.SaveChanges(); } } //return RedirectToLocal("/Stocks/History"); return RedirectToAction("History", "Stocks"); }
public ActionResult SellStock(TransactionModel model) { if (ModelState.IsValid && model.Ticker != "None" && model.Ticker != "NA") { Dictionary<string, List<StockTransaction>> transactionDictonary = new Dictionary<string, List<StockTransaction>>(); List<Stock> viewStockList = new List<Stock>(); using (StockContext db = new StockContext()) { foreach (StockTransaction trans in db.StockTransactions.ToList().Where(t => t.FBID == (String)Session["FBID"])) { if (transactionDictonary.ContainsKey(trans.Ticker)) { List<StockTransaction> transactionList = transactionDictonary[trans.Ticker]; transactionList.Add(trans); transactionDictonary[trans.Ticker] = transactionList; } else { List<StockTransaction> transactionList = new List<StockTransaction>(); transactionList.Add(trans); transactionDictonary.Add(trans.Ticker, transactionList); } } int shares = 0; if (transactionDictonary.ContainsKey(model.Ticker)) { foreach (StockTransaction trans in transactionDictonary[model.Ticker]) { shares += trans.Shares; } if (shares != 0 && shares > model.Amount) { Stock s = getOneStock(model.Ticker); StockTransaction st = new StockTransaction { FBID = (String)Session["FBID"], Ticker = model.Ticker, Price = s.CurrentPrice, Shares = model.Amount * -1, TransactionDate = DateTime.Now }; db.StockTransactions.Add(st); db.SaveChanges(); } else if (shares != 0 && shares < model.Amount) { Stock s = getOneStock(model.Ticker); StockTransaction st = new StockTransaction { FBID = (String)Session["FBID"], Ticker = model.Ticker, Price = s.CurrentPrice, Shares = shares * -1, TransactionDate = DateTime.Now }; db.StockTransactions.Add(st); db.SaveChanges(); } } } //return RedirectToLocal("/Stocks/Index"); return RedirectToAction("Index", "Stocks"); } // If we got this far, something failed, redisplay form // ModelState.AddModelError("Amount", "The amount provided is invalid."); // return View("Index", model); return RedirectToAction("Index", "Stocks"); }