public static TickerPeriodRangeParameter Create(string ticker, IComparablePeriod from, IComparablePeriod to) { JpTickerValidator.Validate(ticker); return(new TickerPeriodRangeParameter(ticker, PeriodRange <IComparablePeriod> .Create(from, to))); }
public IList <IApiResource> GetApiResources(DataTypeConfig dataType, string ticker, IComparablePeriod from, IComparablePeriod to, bool isConfigureAwait = true, bool useCache = true) { UpdateApiKeyIfNeeded(); if (from.CompareTo(to) > 0) { throw new ArgumentException($"from={from} is more than to={to}"); } var endOfOndemandPeriod = taskHelper.FindEndOfOndemandPeriod(dataType, ticker, PeriodRange <IComparablePeriod> .Create(from, to), config.IsOndemandEndpointEnabled, isConfigureAwait, useCache); // use fixed tier from all range if (endOfOndemandPeriod is null) { var parameter = TickerPeriodRangeParameter.Create(ticker, from, to); var json = client.GetRange(dataType, parameter, false, isConfigureAwait, useCache); return(parser.ParseRange(dataType, json)); } else { var ondemandParameter = TickerPeriodRangeParameter.Create(ticker, from, endOfOndemandPeriod); var fixedParameter = TickerPeriodRangeParameter.Create(ticker, endOfOndemandPeriod.Next(), to); var ondemandTierJson = client.GetRange(dataType, ondemandParameter, true, isConfigureAwait, useCache); var fixedTierJson = client.GetRange(dataType, fixedParameter, false, isConfigureAwait, useCache); var ondemandResources = parser.ParseRange(dataType, ondemandTierJson); var fixedTierResource = parser.ParseRange(dataType, fixedTierJson); return(ondemandResources.Concat(fixedTierResource).ToList()); } }