public async Task <IActionResult> AddTransaction(string coinname, int coinhodleid, decimal quantity, decimal fee, string datatime, decimal priceWhenBoughtSold, int coinid) { try { CoinsHodle coinsHodle = await _repo.GetCoinsHodle(coinhodleid); //Transactions transactions = await _repo.GetTransactions(coinsHodle.Id); if (await _repo.AddTransaction(coinsHodle, quantity, datatime, fee, priceWhenBoughtSold, coinid)) { // var total = await _repo.Get_Total_Coin_In_Portfolio(coinsHodle, coinid); // replace 1 with coinid // if (await _repo.UpdateCoinHodleAmount(coinsHodle)) // maybe better way of doing this //return Ok(total); return(Ok()); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } return(BadRequest("Failed to add Transaction")); }
public async Task <bool> AddCoinToPortfolio(int coinid, int coinidno, Portfolio portfolio) { CoinsHodle newCoinsHodle = new CoinsHodle(); // newCoinsHodle.Name = name; newCoinsHodle.coinID = coinidno; newCoinsHodle.Quantity = 0; newCoinsHodle.Portfolio = portfolio; _context.CoinsHodle.Add(newCoinsHodle); return(await _context.SaveChangesAsync() > 0); }
public async Task <double> Get_Total_Coin_In_Portfolio(CoinsHodle coinHodleID, int coinid) { var coinsHodle = await _context.CoinsHodle .Include(t => t.Transactions) .FirstOrDefaultAsync(p => p.Id == coinHodleID.Id); var totalbuys = from Transaction in coinsHodle.Transactions where Transaction.Coinid == coinid select Transaction.AmountBuy; var totalsells = from Transaction in coinHodleID.Transactions where Transaction.Coinid == coinid select Transaction.AmountSell; var totalBuy = totalbuys.Sum(); var totalSell = totalsells.Sum(); return(totalBuy - totalSell); }