Exemplo n.º 1
0
        internal static bool ShouldContinue(Uri uri, IApiOptions options)
        {
            if (uri == null)
            {
                return(false);
            }

            if (uri.Query.Contains("page=") && options.PageCount.HasValue)
            {
                var allValues = ToQueryStringDictionary(uri);

                string pageValue;
                if (allValues.TryGetValue("page", out pageValue))
                {
                    var startPage = options.StartPage ?? 1;
                    var pageCount = options.PageCount.Value;

                    var endPage = startPage + pageCount;
                    if (pageValue.Equals(endPage.ToString(CultureInfo.InvariantCulture), StringComparison.OrdinalIgnoreCase))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        public IEnumerable <TResult> Query <TResult>(string uri, IApiOptions options, HttpMethod method, Func <string, IEnumerable <TResult> > serializer)
        {
            if (method == HttpMethod.Post)
            {
                return(Post <IEnumerable <TResult> >(uri, options, serializer));
            }

            return(Get <IEnumerable <TResult> >(uri, options, serializer));
        }
Exemplo n.º 3
0
        public IEnumerable <TResult> Query <TResult>(string uri, IApiOptions options, HttpMethod method)
        {
            if (method == HttpMethod.Post)
            {
                return(Post <IEnumerable <TResult> >(uri, options));
            }

            return(Get <IEnumerable <TResult> >(uri, options));
        }
Exemplo n.º 4
0
        public CommandSendActivity(IApiOptions apiOptions)
        {
            if (apiOptions is null)
            {
                throw new ArgumentNullException(nameof(apiOptions));
            }

            ReferenceLink.BaseUrl = apiOptions.Url;
        }
Exemplo n.º 5
0
        public async Task <IReadOnlyPagedCollection <T> > GetPage <T>(
            Uri uri,
            IDictionary <string, string> parameters,
            string accepts,
            IApiOptions options)
        {
            uri.ArgumentNotNull(nameof(uri));

            var response = await Connection.Get <IList <T> >(uri, parameters, accepts).ConfigureAwait(false);

            return(new ReadOnlyPagedCollection <T>(
                       response,
                       x =>
            {
                var shouldContinue = Pagination.ShouldContinue(x, options);

                return shouldContinue
                        ? Connection.Get <IList <T> >(x, parameters, accepts)
                        : null;
            }));
        }
        public static IServiceProvider BuildServiceProvider(IApiOptions options)
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddLogging("CalculateFunding.Migrations.ProviderVersionDefectCorrection");
            serviceCollection.AddPolicySettings(Configuration);
            serviceCollection.AddSingleton <ICalculationsEtlResiliencePolicies>(ctx =>
            {
                PolicySettings policySettings = ctx.GetService <PolicySettings>();
                AsyncBulkheadPolicy totalNetworkRequestsPolicy = ResiliencePolicyHelpers
                                                                 .GenerateTotalNetworkRequestsPolicy(policySettings);

                return(new ResiliencePolicies
                {
                    CalculationsApiClient = GenerateRestRepositoryPolicy(totalNetworkRequestsPolicy),
                    SpecificationApiClient = GenerateRestRepositoryPolicy(totalNetworkRequestsPolicy),
                    DataSetsApiClient = GenerateRestRepositoryPolicy(totalNetworkRequestsPolicy)
                });
            });

            AddHttpClientForClientKey(HttpClientKeys.Specifications,
                                      options.SpecificationsApiUri,
                                      options.SpecificationsApiKey,
                                      serviceCollection);
            AddHttpClientForClientKey(HttpClientKeys.Calculations,
                                      options.CalculationsApiUri,
                                      options.CalculationsApiKey,
                                      serviceCollection);
            AddHttpClientForClientKey(HttpClientKeys.Datasets,
                                      options.DataSetsApiUri,
                                      options.DataSetsApiKey,
                                      serviceCollection);

            serviceCollection.AddSingleton <ICalculationsApiClient, CalculationsApiClient>();
            serviceCollection.AddTransient <ISpecificationsApiClient, SpecificationsApiClient>();
            serviceCollection.AddTransient <IDatasetsApiClient, DatasetsApiClient>();

            return(serviceCollection.BuildServiceProvider());
        }
Exemplo n.º 7
0
 public TResult Post <TResult>(string uri, IApiOptions options, Func <string, TResult> serializer)
 {
     return(_httpClient.Post <TResult>(ParseAssertUri(uri), serializer, options.Parameters));
 }
Exemplo n.º 8
0
 public TResult Post <TResult>(string uri, IApiOptions options)
 {
     return(_httpClient.Post <TResult>(ParseAssertUri(uri), options.Parameters));
 }
 private static IServiceProvider ConfigureApis(IApiOptions options)
 {
     return(BootStrapper.BuildServiceProvider(options));
 }
Exemplo n.º 10
0
 public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, IDictionary <string, string> parameters, IApiOptions options)
     where T : class
 {
     return(GetAll <T>(uri, parameters, null, options));
 }
Exemplo n.º 11
0
 public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, IApiOptions options)
     where T : class
 {
     return(GetAll <T>(uri, null, null, options));
 }
Exemplo n.º 12
0
        public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, IDictionary <string, string> parameters, string accepts, IApiOptions options)
            where T : class
        {
            uri.ArgumentNotNull(nameof(uri));
            options.ArgumentNotNull(nameof(options));

            parameters = Pagination.Setup(parameters, options);

            return(pagination.GetAllPages(async() => await GetPage <T>(uri, parameters, accepts, options).ConfigureAwait(false), uri));
        }
Exemplo n.º 13
0
        public Task <IReadOnlyList <GpgKey> > GetAllForCurrent(IApiOptions options)
        {
            options.ArgumentNotNull(nameof(options));

            return(ApiConnection.GetAll <GpgKey>(ApiUrls.GpgKeys(), options));
        }
Exemplo n.º 14
0
 public StudentApiHandler(IApiOptions <IStudentApi> options) : base(options)
 {
 }
Exemplo n.º 15
0
 public CommandSendActivity(IApiOptions apiOptions)
 {
     this.apiOptions = apiOptions ?? throw new ArgumentNullException(nameof(apiOptions));
 }
Exemplo n.º 16
0
        internal static IDictionary <string, string> Setup(IDictionary <string, string> parameters, IApiOptions options)
        {
            parameters = parameters ?? new Dictionary <string, string>();

            if (options.PageSize.HasValue)
            {
                parameters.Add("per_page", options.PageSize.Value.ToString(CultureInfo.InvariantCulture));
            }

            if (options.StartPage.HasValue)
            {
                parameters.Add("page", options.StartPage.Value.ToString(CultureInfo.InvariantCulture));
            }

            return(parameters);
        }