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