Example #1
0
        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"));
        }
Example #2
0
        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));
        }