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)); }
public async Task <ActionResult> GetAvailableIds() { var ids = await _iexProvider.GetAvailableIdsAsync(); var container = new IexContainer <IReadOnlyList <TimeseriesId> >(ids, _attributionTitle, _attributionUrl); return(Json(container)); }
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)); }
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)); }