private Quarter GetQuarter(string ticker, string fiscalYear, string fiscalQuarter) { if (!cache.HasQuarter(ticker, fiscalYear, fiscalQuarter)) { var task = client.GetQuarter(Configuration.ApiKey, ticker, fiscalYear, fiscalQuarter); string json = processor.Process(task); cache.Add(Quarter.Parse(ticker, json)); } if (!cache.HasQuarter(ticker, fiscalYear, fiscalQuarter)) { throw new AggregationNotFoundException(); } return(cache.GetQuarter(ticker, fiscalYear, fiscalQuarter)); }
/// <summary> /// <see cref="Quarter"/>を取得します。 /// </summary> /// <param name="ticker">銘柄コード</param> /// <param name="fiscalYear">会計年度</param> /// <param name="fiscalQuarter">会計四半期</param> /// <returns><see cref="Quarter"/></returns> public Quarter GetQuarter(string ticker, string fiscalYear, string fiscalQuarter) { string identifier = Quarter.GetIdentifier(ticker, int.Parse(fiscalYear), int.Parse(fiscalQuarter)); return(quarterCache[identifier]); }
/// <summary> /// <see cref="Quarter"/>をキャッシュに追加します。 /// </summary> /// <param name="quarter"></param> public void Add(Quarter quarter) { quarterCache.TryAdd(quarter.GetIdentifier(), quarter); }
/// <summary> /// <see cref="Quarter"/>がキャッシュされているかを返します。 /// </summary> /// <param name="ticker">銘柄コード</param> /// <param name="fiscalYear">会計年度</param> /// <param name="fiscalQuarter">会計四半期</param> /// <returns>キャッシュされている場合はtrue</returns> public bool HasQuarter(string ticker, string fiscalYear, string fiscalQuarter) { string identifier = Quarter.GetIdentifier(ticker, int.Parse(fiscalYear), int.Parse(fiscalQuarter)); return(quarterCache.ContainsKey(identifier)); }
/// <inheritdoc/> public string GetIdentifier() { return(Quarter.GetIdentifier(Ticker, FiscalYear, FiscalQuarter)); }