diff --git a/README.md b/README.md index c8625f9..0a4d06b 100644 --- a/README.md +++ b/README.md @@ -17,31 +17,28 @@ For use outside of ASP.NET Core, see the [configuration](source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs). 1. Add configuration (for optional values see [options](source/VMelnalksnis.NordigenDotNet/NordigenOptions.cs)) + ```yaml + "Nordigen": { + "SecretId": "", + "SecretKey": "" + } + ``` -```yaml -"Nordigen": { - "SecretId": "", - "SecretKey": "" -} -``` - -2. Register required services - -```csharp -// Only registers services from NordigenDotNet -services.AddNordigenDotNet(Configuration); -// Also registers the IDateTimeZoneProvider, which is required -serviceCollection.AddNordigenDotNet(Configuration, SystemClock.Instance, DateTimeZoneProviders.Tzdb); -``` +2. Register required services (see [tests](tests/VMelnalksnis.NordigenDotNet.DependencyInjection.Tests/ServiceCollectionExtensionsTests.cs)) + ```csharp + serviceCollection + .AddSingleton(SystemClock.Instance) + .AddSingleton(DateTimeZoneProviders.Tzdb) + .AddNordigenDotNet(configuration); + ``` 3. (Optional) Configure retries with [Polly](https://github.com/App-vNext/Polly) ([NuGet package](https://www.nuget.org/packages/Microsoft.Extensions.Http.Polly)) - -```csharp -services - .AddNordigenDotNet(Configuration, SystemClock.Instance, DateTimeZoneProviders.Tzdb) - .AddPolicyHandler(...); -``` + ```csharp + serviceCollection + .AddNordigenDotNet(configuration) + .AddPolicyHandler(...); + ``` 4. Use `INordigenClient` to access all endpoints, or one of the specific clients defined in `INordigenClient` diff --git a/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs b/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs index baaeefd..86cafe6 100644 --- a/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs +++ b/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs @@ -12,11 +12,8 @@ using JetBrains.Annotations; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using NodaTime; - using VMelnalksnis.NordigenDotNet.Accounts; using VMelnalksnis.NordigenDotNet.Agreements; using VMelnalksnis.NordigenDotNet.Institutions; @@ -39,23 +36,6 @@ public static class ServiceCollectionExtensions _userAgent = new(assemblyShortName, assemblyName.Version?.ToString()); } - /// Adds all required services for . - /// The service collection in which to register the services. - /// The configuration to which to bind options models. - /// Clock for accessing the current time. - /// Time zone provider for date and time serialization. - /// The for the used by . - public static IHttpClientBuilder AddNordigenDotNet( - this IServiceCollection serviceCollection, - IConfiguration configuration, - IClock clock, - IDateTimeZoneProvider dateTimeZoneProvider) - { - serviceCollection.TryAddSingleton(clock); - serviceCollection.TryAddSingleton(dateTimeZoneProvider); - return serviceCollection.AddNordigenDotNet(configuration); - } - /// Adds all required services for , excluding external dependencies. /// The service collection in which to register the services. /// The configuration to which to bind options models. diff --git a/tests/VMelnalksnis.NordigenDotNet.DependencyInjection.Tests/ServiceCollectionExtensionsTests.cs b/tests/VMelnalksnis.NordigenDotNet.DependencyInjection.Tests/ServiceCollectionExtensionsTests.cs index 70fb37e..49128be 100644 --- a/tests/VMelnalksnis.NordigenDotNet.DependencyInjection.Tests/ServiceCollectionExtensionsTests.cs +++ b/tests/VMelnalksnis.NordigenDotNet.DependencyInjection.Tests/ServiceCollectionExtensionsTests.cs @@ -27,7 +27,10 @@ public sealed class ServiceCollectionExtensionsTests var serviceCollection = new ServiceCollection(); - serviceCollection.AddNordigenDotNet(configuration, SystemClock.Instance, DateTimeZoneProviders.Tzdb); + serviceCollection + .AddSingleton(SystemClock.Instance) + .AddSingleton(DateTimeZoneProviders.Tzdb) + .AddNordigenDotNet(configuration); var serviceProvider = serviceCollection.BuildServiceProvider(); var nordigenClient = serviceProvider.GetRequiredService(); diff --git a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/ServiceProviderFixture.cs b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/ServiceProviderFixture.cs index f133a5e..758d93b 100644 --- a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/ServiceProviderFixture.cs +++ b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/ServiceProviderFixture.cs @@ -40,7 +40,12 @@ public sealed class ServiceProviderFixture .Build(); var serviceCollection = new ServiceCollection(); - serviceCollection.AddNordigenDotNet(configuration, Clock, DateTimeZoneProviders.Tzdb); + + serviceCollection + .AddSingleton(Clock) + .AddSingleton(DateTimeZoneProviders.Tzdb) + .AddNordigenDotNet(configuration); + serviceCollection.AddLogging(builder => { var logger = new LoggerConfiguration()