/// <summary> /// /// </summary> /// <param name="parser"> /// The <see cref="IApiResponseParser{T}"/> which should handle /// conversion from a <see cref="XmlDocument"/> to an <see cref="ApiResponse"/> /// Pre-condition: the given parser should not be null.</param> /// <param name="ignoreCacheUntil">Ignores the cacheUntil and will return the cache even if expired</param> internal ApiRequestHandler(IApiResponseParser <T> parser, bool ignoreCacheUntil) { Debug.Assert(parser != null); this.parser = parser; this.ignoreCacheUntil = ignoreCacheUntil; }
// for unit test public PeriodSupportedTierResolver(IBuffettCodeApiClient apiClient, IApiResponseParser parser, SupportedTierDictionary <FiscalQuarterPeriod> quarterDict, SupportedTierDictionary <DayPeriod> dailyDict) { this.apiClient = apiClient; this.parser = parser; this.quarterDict = quarterDict; this.dailyDict = dailyDict; }
public BuffettCodeApiTaskProcessor(BuffettCodeApiVersion version) { client = ApiClientFactory.Create(version, config.ApiKey); parser = ApiResponseParserFactory.Create(version); var tierResolver = PeriodSupportedTierResolver.Create(client, parser); taskHelper = new ApiTaskHelper(tierResolver); }
/// <summary> /// Default Constructor /// </summary> public ApiRequestHandler(IApiResponseParserAsync <T> asyncParser, IApiResponseParser <T> parser, INetworkHandler networkHandler, bool ignoreCache = false) { ExceptionHelper.ThrowOnNull(parser, "parser"); ExceptionHelper.ThrowOnNull(networkHandler, "networkHandler"); Parser = parser; AsyncParser = asyncParser; IgnoreCache = ignoreCache; Network = networkHandler; }
/// <summary> /// Default Constructor /// </summary> public ApiRequestHandler(IApiResponseParser <T> parser, INetworkHandler networkHandler, bool ignoreCache = false) : this(parser as IApiResponseParserAsync <T>, parser, networkHandler, ignoreCache) { }
public static PeriodSupportedTierResolver Create(IBuffettCodeApiClient apiClient, IApiResponseParser parser) => new PeriodSupportedTierResolver(apiClient, parser, new SupportedTierDictionary <FiscalQuarterPeriod>(), new SupportedTierDictionary <DayPeriod>());
public DataService(IApiWrapper apiWrapper, IApiResponseParser apiResponseParser) { Api = apiWrapper; ApiResponseParser = apiResponseParser; }
//SETUP public XmlResponseParserFixture() { xmlParser = new XmlApiResponseParser(); CategoriesXmlResponse = File.ReadAllText("Resources\\SampleApiCategoriesResponse.xml"); ImagesXmlResponse = File.ReadAllText("Resources\\SampleApiImagesResponse.xml"); }