public IActionResult GetAllCategories() { string[] categories = { "healthcare", "technology", "financial", "industrials", "communicationservices" }; IList <Company> listCompany = _stockService.GetStocks(categories); var jsonOptions = new JsonSerializerOptions { Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; JsonResult jsonResult = new JsonResult(listCompany, jsonOptions); return(jsonResult); }
public async Task <StockScreenerResponseList> GetStocks(StockScreenerRequest request) { var stocks = await _stockScreenerService.GetStocks(request); foreach (var stock in stocks) { if (stock.price > 1) { stock.DividendYield = (decimal)(stock.lastAnnualDividend / stock.price); } else { stock.DividendYield = 0; } } var filteredStocks = new List <StockScreenerResponse>(); foreach (var stock in stocks) { if (request.DividendYieldLowerThan != null && request.DividendYieldMoreThan != null) { if (stock.DividendYield >= request.DividendYieldMoreThan && stock.DividendYield <= request.DividendYieldLowerThan) { filteredStocks.Add(stock); } } if (request.DividendYieldLowerThan == null && request.DividendYieldMoreThan != null) { if (stock.DividendYield >= request.DividendYieldMoreThan) { filteredStocks.Add(stock); } } if (request.DividendYieldLowerThan != null && request.DividendYieldMoreThan == null) { if (stock.DividendYield <= request.DividendYieldLowerThan) { filteredStocks.Add(stock); } } if (request.DividendYieldLowerThan == null && request.DividendYieldMoreThan == null) { filteredStocks.Add(stock); } } return(new StockScreenerResponseList() { Items = filteredStocks, Paging = new PagingModel() { Page = 1, PageSize = request.RowsPerPage, TotalItems = stocks.Count } }); }