public void checkPort_Result_II() { string[] stock = new string[] { "GOOG-20,MS-10", "MS-10,GOOG-10" }; double[] check = new double[] { 500.0, 300.0 }; double[] stockValue = PortfolioStock.splitFileData(stock); CollectionAssert.AreNotEqual(check, stockValue); }
public void checkPort_Result() { string[] stockValue = new string[] { "GOOG-20,MS-10", "MS-10,GOOG-10" }; double[] v = new double[] { 1500.0, 1000.0 }; double[] checkValue = PortfolioStock.splitFileData(stockValue); CollectionAssert.AreEqual(checkValue, stockValue); }
public void checkSumOFKeyValue_MS() { double stockValue = PortfolioStock.sumOfOnePortkeyAndPortValue("MS", 20); Assert.AreEqual(1000, stockValue); Assert.AreNotEqual(2000, stockValue); Assert.AreNotEqual(-300, stockValue); }
public void checkSumOFKeyValue_GOOG() { double stockValue = PortfolioStock.sumOfOnePortkeyAndPortValue("GOOG", 10); Assert.AreEqual(500, stockValue); Assert.AreNotEqual(600, stockValue); Assert.AreNotEqual(-200, stockValue); }
public void checkPort_II() { string[] getFileData = PortfolioStock.getStockFile(@"C:\Users\vinothkanth\Desktop\PortFolioData.txt"); string[] getSingleLine = PortfolioStock.fetchSingleLine(getFileData); double[] getStockValue = PortfolioStock.splitFileData(getSingleLine); double[] stockValue = new double[] { 18500, 6000, 2000 }; Assert.AreNotEqual(stockValue, getStockValue); }
public void checkPortResult() { string[] getFileData = PortfolioStock.getStockFile(@"C:\Users\vinothkanth\Desktop\PortFolioData.txt"); string[] getSingleLine = PortfolioStock.fetchSingleLine(getFileData); double[] getStockValue = PortfolioStock.splitFileData(getSingleLine); double[] stockValue = new double[3]; stockValue[0] = 3000.0; stockValue[1] = 8000.0; stockValue[2] = 13500.0; CollectionAssert.AreEqual(stockValue, getStockValue); }
public void AutoTellTest() { try { PortfolioStock.getStockFile(@"C:\Users\vinothkanth\Desktop\PortFolioData.txt"); } catch (System.IO.FileNotFoundException e) { StringAssert.Contains(e.Message, "File Not Found Exception"); return; } catch (Exception e) { StringAssert.Contains(e.Message, "File Not Found Exception"); return; } Assert.Fail("No Exception was through"); }
public void UnknownFile() { string[] stockData = PortfolioStock.getStockFile(@"C:\Users\vinothkanth\Desktop\Por"); string[] checkData = new string[] {}; CollectionAssert.AreEqual(checkData, stockData); }
public void checkPortValueForGoog() { double stockValue = PortfolioStock.fetchStockValue("GOOG"); Assert.AreNotEqual(-49.65, stockValue); }
public void checkSumOFKeyValueNotEqual_INFS() { double stockValue = PortfolioStock.sumOfOnePortkeyAndPortValue("INFS", 50); Assert.AreNotEqual(1000, stockValue); }
public void splitDashNotEqual() { double stockValue = PortfolioStock.splitWordsAsDash(new string[] { "GOOG", "10" }); Assert.AreNotEqual(400, stockValue); }
public void FileNotEmpty() { string[] stockData = PortfolioStock.getStockFile(@"C:\Users\vinothkanth\Desktop\PortFolioData.txt"); string[] checkData = new string[] { }; CollectionAssert.AreNotEqual(checkData, stockData); }
public async Task <IActionResult> PortfolioAsync() { var userId = _userManager.GetUserId(User); //Retrieves data from database StockPortfolioViewModel stockPortfolioViewModel = new StockPortfolioViewModel(); PlayerProfile player = _ProfileRepository.FindByCondition(p => p.UserId == userId).First(); stockPortfolioViewModel.PlayProfile = player; IEnumerable <PlayerStock> playerStocks = _stockRepository.FindByCondition(p => p.ProfileId == player.Id); if (playerStocks.Any()) { //Builds API Url from list of stocks the player owns StringBuilder sb = new StringBuilder(); sb.Append($@"https://cloud.iexapis.com/stable/stock/market/batch/?types=quote&token={_iexcloudKey}&symbols="); for (int i = 0; i < playerStocks.Count(); i++) { if (i == playerStocks.Count() - 1) { sb.Append(playerStocks.ElementAt(i).StockSymbol); } else { sb.Append(playerStocks.ElementAt(i).StockSymbol + ","); } } _url = sb.ToString(); //Gets real time stock quote for each stock player owns var json = await ApiHub.GetJson(_url); var root = JObject.Parse(json); List <StockQuote> stocksApi = new List <StockQuote>(); foreach (var r in root) { var stock = JsonConvert.DeserializeObject <StockQuote>(r.Value["quote"].ToString()); stocksApi.Add(stock); } List <PortfolioStock> stocks = new List <PortfolioStock>(); foreach (var pStocks in playerStocks) { StockQuote stock = stocksApi.Where(s => s.Symbol == pStocks.StockSymbol).FirstOrDefault(); var portfolioStock = new PortfolioStock(); portfolioStock.PlayerStockId = pStocks.Id; portfolioStock.Symbol = stock.Symbol; portfolioStock.Name = stock.CompanyName; portfolioStock.CurrentPrice = stock.LatestPrice; portfolioStock.Change = (decimal)stock.Change; portfolioStock.PercentChange = stock.ChangePercent; portfolioStock.Shares = pStocks.Shares; portfolioStock.PurchasePrice = pStocks.PurchasePrice; portfolioStock.PurchaseDate = pStocks.CreatedDate; stocks.Add(portfolioStock); } foreach (var stock in stocks) { stockPortfolioViewModel.TotalStockValue += stock.MarketValue; stockPortfolioViewModel.TotalStockCost += stock.TotalCost; stockPortfolioViewModel.TotalTodaysGain += stock.TodaysGain; } stockPortfolioViewModel.Stocks = stocks; } return(View("Portfolio", stockPortfolioViewModel)); }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var user = await _userManager.FindByNameAsync(_userAccessor.GetCurrentUserName()); var apiKey = Environment.GetEnvironmentVariable("API_KEY"); var portfolioStock = await _context.Stocks .Where(s => s.Symbol == request.Symbol).Where(u => u.AppUser == user) .SingleOrDefaultAsync(); var client = new RestClient("https://cloud.iexapis.com/stable/stock/{symbol}"); var restRequest = new RestRequest("/quote/latestprice", Method.GET); restRequest.AddParameter("symbol", request.Symbol, ParameterType.UrlSegment); restRequest.AddHeader("Content-Type", "application/json"); restRequest.AddQueryParameter("token", apiKey); restRequest.RequestFormat = DataFormat.Json; var restResponse = await client.ExecuteTaskAsync(restRequest, CancellationToken.None); dynamic api = JObject.Parse(restResponse.Content); var transactionPrice = (float)api.latestPrice * request.Amount; Console.WriteLine(transactionPrice); if (portfolioStock == null) { var stock = new PortfolioStock { PurchaseDate = DateTime.Now, Amount = request.Amount, Symbol = api.symbol, CompanyName = api.companyName, Exchange = api.primaryExchange, PurchasePrice = api.latestPrice, Price = transactionPrice, YearHigh = api.week52High, Id = new Guid(), AppUser = user }; Console.WriteLine("New Stock was added"); _context.Stocks.Add(stock); } else { portfolioStock.Amount += request.Amount; portfolioStock.PurchaseDate = DateTime.Now; portfolioStock.PurchasePrice = (transactionPrice + (float)portfolioStock.Price) / portfolioStock.Amount; portfolioStock.Price += transactionPrice; Console.WriteLine("Your Stock was Updated"); _context.Stocks.Update(portfolioStock); } var transaction = new Transaction { TransactionDate = DateTime.Now, TransactionAmount = request.Amount, PurchasePrice = api.latestPrice, AppUser = user, Type = "Purchase", Symbol = request.Symbol, TransactionPrice = transactionPrice, Id = new Guid(), CompanyName = api.companyName }; var cost = (float)api.latestPrice * request.Amount; var walletTransaction = new WalletTransaction { Id = new Guid(), Type = "Stock Purchase", TransactionDate = DateTime.Now, Amount = -cost, AppUser = user }; user.CashAmount = user.CashAmount - cost; _context.WalletTransactions.Add(walletTransaction); _context.Transactions.Add(transaction); var success = await _context.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("Problem Buying Stock"); }