/// <summary> /// Returns a ValueTask + uses a cache /// </summary> /// <param name="StartDate"></param> /// <returns></returns> public static ValueTask <IEnumerable <HistoricalQuote> > GetHistoricalData(DateTime StartDate) { if (HistoricalDataCache?.Last().Date < StartDate) { return(new ValueTask <IEnumerable <HistoricalQuote> >(HistoricalDataCache.Where(n => n.Date >= StartDate))); } else { var task = HistoricalPriceReader.GetNewerThan(StartDate); task.ContinueWith((n) => HistoricalDataCache = n.Result); return(new ValueTask <IEnumerable <HistoricalQuote> >(task)); } }
/// <summary> /// Returns a Task + uses a cache /// </summary> /// <param name="StartDate"></param> /// <returns></returns> public static Task <IEnumerable <HistoricalQuote> > GetHistoricalData_TaskClassic(DateTime StartDate) { if (HistoricalDataCache_ForTaskClassic?.Last().Date < StartDate) { return(Task.FromResult(HistoricalDataCache_ForTaskClassic.Where(n => n.Date >= StartDate))); } else { var task = HistoricalPriceReader.GetNewerThan(StartDate); task.ContinueWith((n) => HistoricalDataCache_ForTaskClassic = n.Result); return(task); } }