public Settings( int topSize, FundaApiClientSettings apiClientSettings, FundaApiSettings apiSettings, RetryPolicySettings retrySettings ) { if (topSize <= 0) { throw new ArgumentOutOfRangeException(nameof(topSize)); } TopSize = topSize; ApiClientSettings = apiClientSettings ?? throw new ArgumentNullException(nameof(apiClientSettings)); ApiSettings = apiSettings ?? throw new ArgumentNullException(nameof(apiSettings)); RetrySettings = retrySettings ?? throw new ArgumentNullException(nameof(retrySettings)); }
public void Initialize() { mockedApiClient = new Mock <ApiClient>(); mockedOption = new Mock <IOptions <FundaApiSettings> >(); mockedLogger = new Mock <ILogger <OfferFilter> >(); FundaApiSettings fundaApiSettings = new FundaApiSettings { BaseUri = "http://partnerapi.funda.nl", Key = "123456989abcdef", OfferUriTemplate = "feeds/Aanbod.svc/json/{key}?type=koop&zo={searchQuery}&page={pageIndex}&pagesize={pageSize}" }; mockedOption.SetupGet(x => x.Value).Returns(fundaApiSettings); offerFilter = new OfferFilter(mockedOption.Object, mockedApiClient.Object, mockedLogger.Object); }
private static Settings GetSettings() { string apiKey = Environment.GetEnvironmentVariable("FUNDA_API_KEY"); var apiClientSettings = new FundaApiClientSettings(apiKey); const int BATCH_SIZE = 25; const int MAX_PAGES_TO_RETRIEVE = 5000; var apiSettings = new FundaApiSettings(BATCH_SIZE, MAX_PAGES_TO_RETRIEVE); const float DELAY = 2.0f; const float JITTER = 0.5f; const int RETRY_COUNT = 7; var retryPolicySettings = new RetryPolicySettings(DELAY, JITTER, RETRY_COUNT); const int TOP_SIZE = 10; return(new Settings(TOP_SIZE, apiClientSettings, apiSettings, retryPolicySettings)); }
/// <summary> /// The class constructor /// </summary> /// <param name="settings">Settings for this filter to run</param> /// <param name="apiClient">Client having functions to make REST calls</param> /// <param name="logger">Logger to log information</param> public OfferFilter(IOptions <FundaApiSettings> settings, ApiClient apiClient, ILogger <OfferFilter> logger) { this.apiClient = apiClient; apiSettings = settings.Value; this.logger = logger; }