Ejemplo n.º 1
0
 public static TickerPeriodRangeParameter Create(string ticker, IComparablePeriod from, IComparablePeriod to)
 {
     JpTickerValidator.Validate(ticker);
     return(new TickerPeriodRangeParameter(ticker, PeriodRange <IComparablePeriod> .Create(from, to)));
 }
Ejemplo n.º 2
0
        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());
            }
        }