Example #1
0
        public async Task <ActionResult> GetAvailableExpirations(string symbol)
        {
            var expiries = await _stockProvider.GetAvailableExpirationsAsync(symbol);

            var container = new IexContainer <IReadOnlyList <DateTime> >(expiries, _attributionTitle, _attributionUrl);

            return(Json(container));
        }
Example #2
0
        public async Task <ActionResult> GetAvailableIds()
        {
            var ids = await _iexProvider.GetAvailableIdsAsync();

            var container = new IexContainer <IReadOnlyList <TimeseriesId> >(ids, _attributionTitle, _attributionUrl);

            return(Json(container));
        }
Example #3
0
        public async Task <ActionResult> GetAvailableIexSymbols()
        {
            var symbols = await _refProvider.GetAvailableIexSymbolsAsync();

            var result    = symbols.Select(s => s.Symbol).ToList();
            var container = new IexContainer <IReadOnlyList <string> >(result, _attributionTitle, _attributionUrl);

            return(Json(container));
        }
Example #4
0
        public async Task <ActionResult> GetOption(string symbol, string expiration, string side)
        {
            var expDate = DateTime.ParseExact(expiration, "yyyyMM", CultureInfo.InvariantCulture);

            if (!Enum.TryParse(side, ignoreCase: true, out OptionSide optionSide))
            {
                return(Json(new IexContainer <string>("Invalid option side.", _attributionTitle, _attributionUrl)));
            }

            var options = await _stockProvider.GetOptionAsync(symbol, expDate, optionSide);

            var container = new IexContainer <IReadOnlyList <Option> >(options, _attributionTitle, _attributionUrl);

            return(Json(container));
        }