예제 #1
0
        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);
        }
예제 #2
0
        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
                }
            });
        }