/* * Calls the IEX reference API to get the stock stats. * Returns a stock stats whose information is available. */ public StockStats GetStockStats(String symbol) { string IEXTrading_API_PATH = BASE_URL + "stock/" + symbol + "/stats"; string responseStockStats = ""; StockStats stockStats = null; HttpClient httpClient1 = new HttpClient(); httpClient1.DefaultRequestHeaders.Accept.Clear(); httpClient1.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); // connect to the IEXTrading API and retrieve information httpClient1.BaseAddress = new Uri(IEXTrading_API_PATH); HttpResponseMessage response = httpClient1.GetAsync(IEXTrading_API_PATH).GetAwaiter().GetResult(); // read the Json objects in the API response if (response.IsSuccessStatusCode) { responseStockStats = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); Console.WriteLine(responseStockStats); } // now, parse the Json strings as C# objects if (!responseStockStats.Equals("")) { stockStats = JsonConvert.DeserializeObject <StockStats>(responseStockStats); } return(stockStats); }
public IActionResult ChartData(String symbol) { StockStats stockstats = GetStockStats(symbol); PopulateStockStats(stockstats); List <Chart> chartData = GetChartData(symbol); var ci = System.Globalization.CultureInfo.GetCultureInfo("en-us"); List <DataPoint> dataPoints = new List <DataPoint>(); foreach (Chart chart in chartData) { DateTime yourDateTime = DateTime.Parse(chart.date, ci); long yourDateTimeMilliseconds = new DateTimeOffset(yourDateTime).ToUnixTimeMilliseconds(); DataPoint dp = new DataPoint(yourDateTimeMilliseconds, chart.high); dataPoints.Add(dp); } ViewBag.symbol = symbol; ViewBag.StockStat = new List <StockStats> { stockstats }; ViewBag.DataPoints = JsonConvert.SerializeObject(dataPoints); return(View()); }
/* * Save the symbol statistic in the database */ public void PopulateStockStats(StockStats stock) { //Database will give PK constraint violation error when trying to insert record with existing PK. //So add company only if it doesnt exist, check existence using symbol (PK) if (dbContext.StockStatistics.Where(c => c.symbol.Equals(stock.symbol)).Count() == 0) { dbContext.StockStatistics.Add(stock); } dbContext.SaveChanges(); }