public ActionResult CreateBuyTransaction(TransactionViewModel transactionViewModel) { var userId = User.Identity.GetUserId(); var tr = new Transaction() { Quantity = transactionViewModel.Quantity, DateOfPurchase = transactionViewModel.DatePurchased, Buy = true, Watch = true }; _context.Transactions.Add(tr); var prtc = new PortfolioCoin() { TransactionID = tr.TransactionID, PortfolioID = transactionViewModel.PortfolioID, CoinID = transactionViewModel.CoinID }; _context.PortfolioCoins.Add(prtc); _context.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public ActionResult CreateSellTransaction(TransactionViewModel transactionViewModel) { var userId = User.Identity.GetUserId(); var quan = _context.Transactions.Where(x => x.Buy == true) .Join(_context.PortfolioCoins, t => t.TransactionID, pc => pc.TransactionID, (t, pc) => new { t, pc }) .Join(_context.Coins, pc => pc.pc.CoinID, c => c.CoinID, (pc, c) => new { pc, c }) .Join(_context.Portfolios, tpc => tpc.pc.pc.PortfolioID, port => port.PortfolioID, (tpc, port) => new { tpc, port }) .Where(tpc => tpc.port.UserID == userId && tpc.tpc.c.CoinID == tpc.tpc.pc.pc.CoinID) .Select(tpcport => new TransactionViewModel { Quantity = tpcport.tpc.pc.t.Quantity, Buy = tpcport.tpc.pc.t.Buy }); var tr = new Transaction() { Quantity = -(transactionViewModel.Quantity), DateOfPurchase = transactionViewModel.DatePurchased, Buy = false }; _context.Transactions.Add(tr); var prtc = new PortfolioCoin() { TransactionID = tr.TransactionID, PortfolioID = transactionViewModel.PortfolioID, CoinID = transactionViewModel.CoinID }; _context.PortfolioCoins.Add(prtc); _context.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> BuildPortfolioCoin([FromBody] Coin c) { var coin = _context.Coins.Find(c.id); var user = await _utilityService.GetUser(); var portfolio = await _context.UserPortfolios.FirstOrDefaultAsync <UserPortfolio>(u => u.UserId == user.Id && u.CurrentlySelected == true); if (await _context.PortfolioCoins.AnyAsync <PortfolioCoin>(p => p.UserPortfolioId == portfolio.Id && p.Coinid == coin.id)) { return(BadRequest("That coin is already associated with this portfolio.")); } PortfolioCoin newPortfolioCoin = new PortfolioCoin { UserPortfolioId = portfolio.Id, Coinid = coin.id }; await _context.PortfolioCoins.AddAsync(newPortfolioCoin); await _context.SaveChangesAsync(); return(Ok(newPortfolioCoin)); }