forked from laniatech/Checkout-NET-SDK
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSampleHttpClientFactory.cs
36 lines (27 loc) · 1.19 KB
/
SampleHttpClientFactory.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using PayPal.Sdk.Checkout.Core.Interfaces;
using PayPal.Sdk.Checkout.Extensions;
using System;
using System.IO;
namespace PayPal.Sdk.Checkout.Samples;
public static class SampleHttpClientFactory
{
private static IServiceProvider CreateServiceProvider()
{
var configurationBuilder = new ConfigurationBuilder();
var currentDirectory = Directory.GetCurrentDirectory();
configurationBuilder.SetBasePath(currentDirectory + "/../../..");
configurationBuilder.AddJsonFile("appsettings.json5", optional: false, reloadOnChange: false);
configurationBuilder.AddJsonFile("user.appsettings.json5", optional: true, reloadOnChange: false);
var configuration = configurationBuilder.Build();
var serviceCollection = new ServiceCollection();
serviceCollection.AddPayPalCheckout(c => configuration.Bind(c));
return serviceCollection.BuildServiceProvider();
}
public static IPayPalHttpClient CreateHttpClient()
{
var serviceProvider = CreateServiceProvider();
return serviceProvider.GetRequiredService<IPayPalHttpClient>();
}
}