diff --git a/docs/apis/account-and-transaction/openapi-aisp.json b/docs/apis/account-and-transaction/openapi-aisp.json
index a0436339..0f36905d 100644
--- a/docs/apis/account-and-transaction/openapi-aisp.json
+++ b/docs/apis/account-and-transaction/openapi-aisp.json
@@ -3,7 +3,7 @@
"info": {
"title": "Account and Transaction API",
"description": "Account and Transaction API for Open Banking Connector Web App",
- "version": "20.0.0"
+ "version": "21.0.0"
},
"paths": {
"/aisp/account-access-consent-auth-contexts": {
diff --git a/docs/apis/auth-contexts/openapi-auth.json b/docs/apis/auth-contexts/openapi-auth.json
index 8af98e23..e9b86c1a 100644
--- a/docs/apis/auth-contexts/openapi-auth.json
+++ b/docs/apis/auth-contexts/openapi-auth.json
@@ -3,7 +3,7 @@
"info": {
"title": "Auth Contexts API",
"description": "Auth Contexts API for Open Banking Connector Web App",
- "version": "20.0.0"
+ "version": "21.0.0"
},
"paths": {
"/auth/redirect-delegate": {
diff --git a/docs/apis/management/openapi-manage.json b/docs/apis/management/openapi-manage.json
index f912eb46..8faccc75 100644
--- a/docs/apis/management/openapi-manage.json
+++ b/docs/apis/management/openapi-manage.json
@@ -3,7 +3,7 @@
"info": {
"title": "Management API",
"description": "Management API for Open Banking Connector Web App",
- "version": "20.0.0"
+ "version": "21.0.0"
},
"paths": {
"/manage/bank-registrations": {
diff --git a/docs/apis/payment-initiation/openapi-pisp.json b/docs/apis/payment-initiation/openapi-pisp.json
index 36973817..10ddba1b 100644
--- a/docs/apis/payment-initiation/openapi-pisp.json
+++ b/docs/apis/payment-initiation/openapi-pisp.json
@@ -3,7 +3,7 @@
"info": {
"title": "Payment Initiation API",
"description": "Payment Initiation API for Open Banking Connector Web App",
- "version": "20.0.0"
+ "version": "21.0.0"
},
"paths": {
"/pisp/domestic-payment-consent-auth-contexts": {
diff --git a/docs/apis/variable-recurring-payments/openapi-vrp.json b/docs/apis/variable-recurring-payments/openapi-vrp.json
index 2bfbaaf2..3d144b33 100644
--- a/docs/apis/variable-recurring-payments/openapi-vrp.json
+++ b/docs/apis/variable-recurring-payments/openapi-vrp.json
@@ -3,7 +3,7 @@
"info": {
"title": "Variable Recurring Payments API",
"description": "Variable Recurring Payments API for Open Banking Connector Web App",
- "version": "20.0.0"
+ "version": "21.0.0"
},
"paths": {
"/vrp/domestic-vrp-consent-auth-contexts": {
diff --git a/docs/configuration/database-settings.md b/docs/configuration/database-settings.md
index 0cb7dc96..d17a6430 100644
--- a/docs/configuration/database-settings.md
+++ b/docs/configuration/database-settings.md
@@ -15,16 +15,15 @@ Open Banking Connector then obtains the password and adds it to the connection s
- For MongoDB, the first `@` is used as an insertion point for
- `$":{password}"` (C#) where `password` is the obtained password as a string
- For example, connection string "mongodb://my-user@localhost:27017" might become "mongodb://my-user:my-password@localhost:27017"
-- For SQLite, passwords are ignored.
## Settings
-| Name | Valid Values | Default Value(s) | Description |
-|----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| OpenBankingConnector:Database:Provider | {`"Sqlite"`, `"PostgreSql", "MongoDb"`} | `"PostgreSql"` | Determines which database provider Open Banking Connector uses. |
-| OpenBankingConnector:Database:ConnectionStrings:{Provider}
*where Provider ∈ {Sqlite, PostgreSql, MongoDb}*
| string | `"Data Source=./sqliteTestDb.db"` (development environment and Provider = `"Sqlite"`) `"Host=localhost;Database=test;``Username=postgres"` (development environment and Provider = `"PostgreSql"`)
`"mongodb://localhost:27017"` (development environment and Provider = `"MongoDb"`)
- (otherwise) | Connection strings for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The BankTests project, however, may use multiple connection strings to test with multiple databases. A list of connection string parameters for provider `PostgreSql` is given [here](https://www.npgsql.org/doc/connection-string-parameters.html). |
-| OpenBankingConnector:Database:Names:{Provider}
*where Provider ∈ {Sqlite, PostgreSql, MongoDb}*
| string | - | Name of database for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. (Only currently implemented for MongoDb). |
-| OpenBankingConnector:Database:PasswordSettingNames:{Provider} *where Provider ∈ {Sqlite, PostgreSql, MongoDb}*
| string | - | Name of password secret for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The password is obtained and added to the connection string (see text above this table). |
-| OpenBankingConnector:Database:PasswordSources:{Provider} *where Provider ∈ {Sqlite, PostgreSql, MongoDb}*
| {`"Configuration"`, `"AwsSsmParameterStore"`, `"GoogleCloudSecretManagerV1"`} | `"Configuration"` | Source of password secret for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The password is obtained and added to the connection string (see text above this table). |
-| OpenBankingConnector:Database:EnsureDatabaseCreated | {`"true"`, `"false"`} | `"false"` | At application start-up, ensure database is created if does not exist. |
-| OpenBankingConnector:Database:EnsureDatabaseMigrated | {`"true"`, `"false"`} | `"true"` | At application start-up, apply pending migrations. Only supported for database providers with migration support (i.e. only PostgreSql at this time). |
+| Name | Valid Values | Default Value(s) | Description |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OpenBankingConnector:Database:Provider | {`"PostgreSql", "MongoDb"`} | `"PostgreSql"` | Determines which database provider Open Banking Connector uses. |
+| OpenBankingConnector:Database:ConnectionStrings:{Provider} *where Provider ∈ {PostgreSql, MongoDb}*
| string | `"Host=localhost;Database=test;``Username=postgres"` (development environment and Provider = `"PostgreSql"`) `"mongodb://localhost:27017"` (development environment and Provider = `"MongoDb"`)
- (otherwise) | Connection strings for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The BankTests project, however, may use multiple connection strings to test with multiple databases. A list of connection string parameters for provider `PostgreSql` is given [here](https://www.npgsql.org/doc/connection-string-parameters.html). |
+| OpenBankingConnector:Database:Names:{Provider}
*where Provider ∈ {PostgreSql, MongoDb}*
| string | - | Name of database for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. (Only currently implemented for MongoDb). |
+| OpenBankingConnector:Database:PasswordSettingNames:{Provider} *where Provider ∈ {PostgreSql, MongoDb}*
| string | - | Name of password secret for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The password is obtained and added to the connection string (see text above this table). |
+| OpenBankingConnector:Database:PasswordSources:{Provider} *where Provider ∈ {PostgreSql, MongoDb}*
| {`"Configuration"`, `"AwsSsmParameterStore"`, `"GoogleCloudSecretManagerV1"`} | `"Configuration"` | Source of password secret for each database provider. Open Banking Connector only reads the one for the provider specified by OpenBankingConnector:Database:Provider. The password is obtained and added to the connection string (see text above this table). |
+| OpenBankingConnector:Database:EnsureDatabaseCreated | {`"true"`, `"false"`} | `"false"` | At application start-up, ensure database is created if does not exist. |
+| OpenBankingConnector:Database:EnsureDatabaseMigrated | {`"true"`, `"false"`} | `"true"` | At application start-up, apply pending migrations. Only supported for database providers with migration support (i.e. only PostgreSql at this time). |
diff --git a/src/OpenBanking.Library.BankApiModels/Json/DomesticVrpRefundConverter.cs b/src/OpenBanking.Library.BankApiModels/Json/DomesticVrpRefundConverter.cs
index d35d0bcd..7725beae 100644
--- a/src/OpenBanking.Library.BankApiModels/Json/DomesticVrpRefundConverter.cs
+++ b/src/OpenBanking.Library.BankApiModels/Json/DomesticVrpRefundConverter.cs
@@ -5,7 +5,6 @@
#nullable enable
using System.Runtime.Serialization;
-using FinnovationLabs.OpenBanking.Library.BankApiModels.UkObRw.V3p1p11.NSwagVrp.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
@@ -23,16 +22,17 @@ public enum DomesticVrpRefundConverterOptions
ContainsNestedAccountProperty = 1
}
-public class DomesticVrpRefundConverter : JsonConverterWithOptions : JsonConverterWithOptions
-
+ where TRefund : class
{
public DomesticVrpRefundConverter() : base(null) { } // required for case where no label used
public DomesticVrpRefundConverter(JsonConverterLabel jsonConverterLabel) :
- base(jsonConverterLabel) { }
+ base(jsonConverterLabel)
+ { }
- public override void WriteJson(JsonWriter writer, OBCashAccountDebtorWithName? value, JsonSerializer serializer)
+ public override void WriteJson(JsonWriter writer, TRefund? value, JsonSerializer serializer)
{
if (value is null)
{
@@ -42,24 +42,16 @@ public override void WriteJson(JsonWriter writer, OBCashAccountDebtorWithName? v
{
JToken jt = JToken.FromObject(value);
jt.WriteTo(writer);
- }
+ }
}
- public override OBCashAccountDebtorWithName? ReadJson(
+ public override TRefund? ReadJson(
JsonReader reader,
Type objectType,
- OBCashAccountDebtorWithName? existingValue,
+ TRefund? existingValue,
bool hasExistingValue,
JsonSerializer serializer)
{
-
- // Validate objectType
- if (objectType != typeof(OBCashAccountDebtorWithName))
- {
- throw new NotSupportedException($"The type {objectType} is not supported.");
- }
-
- // Handle JSON null value
if (reader.TokenType is JsonToken.Null)
{
return null;
@@ -68,7 +60,7 @@ public override void WriteJson(JsonWriter writer, OBCashAccountDebtorWithName? v
// Perform de-serialisation
var options = GetOptions(serializer);
var token = JToken.Load(reader);
- OBCashAccountDebtorWithName? refund;
+ TRefund? refund;
if (options is DomesticVrpRefundConverterOptions.ContainsNestedAccountProperty)
{
if (token.Type is not JTokenType.Object)
@@ -80,18 +72,18 @@ public override void WriteJson(JsonWriter writer, OBCashAccountDebtorWithName? v
{
throw new Exception("Refund does not contain nested property Account.");
}
- refund = accountToken.ToObject();
+ refund = accountToken.ToObject(serializer);
}
else
{
- refund = token.ToObject();
+ refund = token.ToObject(serializer);
}
if (refund is null)
{
throw new Exception("Could not deserialise Refund account.");
}
-
+
return refund;
}
}
diff --git a/src/OpenBanking.Library.BankApiModels/Json/SingleOrArrayConverter.cs b/src/OpenBanking.Library.BankApiModels/Json/SingleOrArrayConverter.cs
new file mode 100644
index 00000000..7e08c335
--- /dev/null
+++ b/src/OpenBanking.Library.BankApiModels/Json/SingleOrArrayConverter.cs
@@ -0,0 +1,43 @@
+// Licensed to Finnovation Labs Limited under one or more agreements.
+// Finnovation Labs Limited licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace FinnovationLabs.OpenBanking.Library.BankApiModels.Json;
+
+///
+/// Custom converter for deserialising a field that may be returned either as a single value or as a JSON array containing a single value.
+///
+public class SingleOrArrayConverter : JsonConverter
+{
+ public override bool CanConvert(Type objectType) => true;
+
+ public override object? ReadJson(
+ JsonReader reader,
+ Type objectType,
+ object? existingValue,
+ JsonSerializer serializer)
+ {
+ JToken token = JToken.Load(reader);
+ if (token.Type == JTokenType.Array)
+ {
+ var array = (JArray) token;
+ if (array.Count != 1)
+ {
+ throw new JsonSerializationException(
+ $"We can accept JSON array with exactly one element when deserialising {typeof(T).Name}, but received array with {array.Count} elements.");
+ }
+ return array[0].ToObject(serializer);
+ }
+
+ return token.ToObject(serializer);
+ }
+
+ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
+ {
+ serializer.Serialize(writer, value);
+ }
+}
diff --git a/src/OpenBanking.Library.BankApiModels/OpenBanking.Library.BankApiModels.csproj b/src/OpenBanking.Library.BankApiModels/OpenBanking.Library.BankApiModels.csproj
index 86823b67..dc70840c 100644
--- a/src/OpenBanking.Library.BankApiModels/OpenBanking.Library.BankApiModels.csproj
+++ b/src/OpenBanking.Library.BankApiModels/OpenBanking.Library.BankApiModels.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
annotations
enable
FinnovationLabs.OpenBanking.Library.BankApiModels
@@ -23,7 +23,7 @@
-
+
diff --git a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p1/Models/OBRegistrationProperties1.cs b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p1/Models/OBRegistrationProperties1.cs
index a242ba61..2bbee9dc 100644
--- a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p1/Models/OBRegistrationProperties1.cs
+++ b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p1/Models/OBRegistrationProperties1.cs
@@ -148,6 +148,7 @@ public OBRegistrationProperties1(
/// 'tls_client_auth'
///
[JsonProperty(PropertyName = "token_endpoint_auth_method")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public OBRegistrationProperties1tokenEndpointAuthMethodEnum TokenEndpointAuthMethod { get; set; }
///
@@ -191,6 +192,7 @@ public OBRegistrationProperties1(
/// Gets or sets possible values include: 'RS256', 'PS256', 'ES256'
///
[JsonProperty(PropertyName = "request_object_signing_alg")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public SupportedAlgorithmsEnum RequestObjectSigningAlg { get; set; }
///
diff --git a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p2/Models/OBRegistrationProperties1.cs b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p2/Models/OBRegistrationProperties1.cs
index 70db82b1..deea1b4b 100644
--- a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p2/Models/OBRegistrationProperties1.cs
+++ b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p2/Models/OBRegistrationProperties1.cs
@@ -150,6 +150,7 @@ public OBRegistrationProperties1(
/// 'tls_client_auth'
///
[JsonProperty(PropertyName = "token_endpoint_auth_method")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public OBRegistrationProperties1tokenEndpointAuthMethodEnum TokenEndpointAuthMethod { get; set; }
///
@@ -196,6 +197,7 @@ public OBRegistrationProperties1(
/// Gets or sets possible values include: 'RS256', 'PS256', 'ES256'
///
[JsonProperty(PropertyName = "request_object_signing_alg")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public SupportedAlgorithmsEnum RequestObjectSigningAlg { get; set; }
///
diff --git a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p3/Models/OBRegistrationProperties1.cs b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p3/Models/OBRegistrationProperties1.cs
index 8bf8d1be..5fadcc96 100644
--- a/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p3/Models/OBRegistrationProperties1.cs
+++ b/src/OpenBanking.Library.BankApiModels/UkObDcr/V3p3/Models/OBRegistrationProperties1.cs
@@ -157,6 +157,7 @@ public OBRegistrationProperties1()
/// 'tls_client_auth'
///
[JsonProperty(PropertyName = "token_endpoint_auth_method")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public OBRegistrationProperties1tokenEndpointAuthMethodEnum TokenEndpointAuthMethod { get; set; }
///
@@ -203,6 +204,7 @@ public OBRegistrationProperties1()
/// Gets or sets possible values include: 'RS256', 'PS256', 'ES256'
///
[JsonProperty(PropertyName = "request_object_signing_alg")]
+ [JsonConverter(typeof(SingleOrArrayConverter))]
public SupportedAlgorithmsEnum RequestObjectSigningAlg { get; set; }
///
diff --git a/src/OpenBanking.Library.BankApiModels/UkObRw/V3p1p11/NSwagVrp/Models/NSwagModels.cs b/src/OpenBanking.Library.BankApiModels/UkObRw/V3p1p11/NSwagVrp/Models/NSwagModels.cs
index 8311aaa1..70e4c531 100644
--- a/src/OpenBanking.Library.BankApiModels/UkObRw/V3p1p11/NSwagVrp/Models/NSwagModels.cs
+++ b/src/OpenBanking.Library.BankApiModels/UkObRw/V3p1p11/NSwagVrp/Models/NSwagModels.cs
@@ -1287,7 +1287,7 @@ public partial record Data4
///
///
[Newtonsoft.Json.JsonConverter(
- typeof(DomesticVrpRefundConverter),
+ typeof(DomesticVrpRefundConverter),
JsonConverterLabel.DomesticVrpRefund)]
[Newtonsoft.Json.JsonProperty("Refund", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public OBCashAccountDebtorWithName? Refund { get; set; } = default!;
diff --git a/src/OpenBanking.Library.BankApiModels/UkObRw/V4p0/NSwagVrp/Models/NSwagModels.cs b/src/OpenBanking.Library.BankApiModels/UkObRw/V4p0/NSwagVrp/Models/NSwagModels.cs
index 64774736..74b79bb3 100644
--- a/src/OpenBanking.Library.BankApiModels/UkObRw/V4p0/NSwagVrp/Models/NSwagModels.cs
+++ b/src/OpenBanking.Library.BankApiModels/UkObRw/V4p0/NSwagVrp/Models/NSwagModels.cs
@@ -3133,6 +3133,9 @@ public partial record Data4
/// Only included in the response if `Data.ReadRefundAccount` is set to `Yes` in the consent.
///
///
+ [Newtonsoft.Json.JsonConverter(
+ typeof(DomesticVrpRefundConverter),
+ JsonConverterLabel.DomesticVrpRefund)]
[Newtonsoft.Json.JsonProperty("Refund", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public OBCashAccountDebtorWithName? Refund { get; set; } = default!;
diff --git a/src/OpenBanking.Library.Connector.GenericHost/Extensions/ServiceCollectionExtensions.cs b/src/OpenBanking.Library.Connector.GenericHost/Extensions/ServiceCollectionExtensions.cs
index de7ebcdd..49d78cd4 100644
--- a/src/OpenBanking.Library.Connector.GenericHost/Extensions/ServiceCollectionExtensions.cs
+++ b/src/OpenBanking.Library.Connector.GenericHost/Extensions/ServiceCollectionExtensions.cs
@@ -71,16 +71,6 @@ public static IServiceCollection AddGenericHostServices(
// Configure DB
switch (databaseSettings.Provider)
{
- case DbProvider.Sqlite:
- services
- // See e.g. https://jasonwatmore.com/post/2020/01/03/aspnet-core-ef-core-migrations-for-multiple-databases-sqlite-and-sql-server
- .AddDbContext(
- (sp, optionsBuilder) =>
- {
- var connectionStringService = sp.GetRequiredService();
- optionsBuilder.UseSqlite(connectionStringService.GetConnectionString());
- });
- break;
case DbProvider.PostgreSql:
services.AddDbContext(
(sp, optionsBuilder) =>
diff --git a/src/OpenBanking.Library.Connector.GenericHost/HostedServices/StartupTasksHostedService.cs b/src/OpenBanking.Library.Connector.GenericHost/HostedServices/StartupTasksHostedService.cs
index 0f6dd4d9..f76e08b3 100644
--- a/src/OpenBanking.Library.Connector.GenericHost/HostedServices/StartupTasksHostedService.cs
+++ b/src/OpenBanking.Library.Connector.GenericHost/HostedServices/StartupTasksHostedService.cs
@@ -70,7 +70,7 @@ public StartupTasksHostedService(
{
_bankProfileService = bankProfileService ?? throw new ArgumentNullException(nameof(bankProfileService));
_configurationRoot =
- (IConfigurationRoot) (configuration ?? throw new ArgumentNullException(nameof(configuration)));
+ (IConfigurationRoot)(configuration ?? throw new ArgumentNullException(nameof(configuration)));
_databaseSettingsProvider = databaseSettingsProvider ??
throw new ArgumentNullException(nameof(databaseSettingsProvider));
_settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService));
@@ -101,25 +101,6 @@ public async Task StartAsync(CancellationToken cancellationToken)
// Database startup tasks
switch (databaseSettings.Provider)
{
- case DbProvider.Sqlite:
- var sqliteDbContext = scope.ServiceProvider.GetRequiredService();
- bool sqliteDbExists =
- sqliteDbContext.Database.GetService().Exists();
- if (!sqliteDbExists)
- {
- if (databaseSettings.EnsureDatabaseCreated)
- {
- // Create database
- sqliteDbContext.Database.EnsureCreated();
- }
- else
- {
- throw new ApplicationException(
- "No database found. Note: set \"Database:EnsureDatabaseCreated\" to \"true\" to create database at application start-up.");
- }
- }
-
- break;
case DbProvider.PostgreSql:
var postgreSqlDbContext = scope.ServiceProvider.GetRequiredService();
bool postgreSqlExists =
diff --git a/src/OpenBanking.Library.Connector.GenericHost/OpenBanking.Library.Connector.GenericHost.csproj b/src/OpenBanking.Library.Connector.GenericHost/OpenBanking.Library.Connector.GenericHost.csproj
index eb80fb52..bad838a0 100644
--- a/src/OpenBanking.Library.Connector.GenericHost/OpenBanking.Library.Connector.GenericHost.csproj
+++ b/src/OpenBanking.Library.Connector.GenericHost/OpenBanking.Library.Connector.GenericHost.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector.GenericHost
@@ -23,20 +23,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/OpenBanking.Library.Connector.Web/OpenBanking.Library.Connector.Web.csproj b/src/OpenBanking.Library.Connector.Web/OpenBanking.Library.Connector.Web.csproj
index 26cf0482..7779b8ad 100644
--- a/src/OpenBanking.Library.Connector.Web/OpenBanking.Library.Connector.Web.csproj
+++ b/src/OpenBanking.Library.Connector.Web/OpenBanking.Library.Connector.Web.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector.Web
diff --git a/src/OpenBanking.Library.Connector/BankProfiles/Generators/HsbcGenerator.cs b/src/OpenBanking.Library.Connector/BankProfiles/Generators/HsbcGenerator.cs
index 0b57991d..856fe8bd 100644
--- a/src/OpenBanking.Library.Connector/BankProfiles/Generators/HsbcGenerator.cs
+++ b/src/OpenBanking.Library.Connector/BankProfiles/Generators/HsbcGenerator.cs
@@ -123,7 +123,7 @@ bank is not HsbcBank.MAndS
DomesticPayment =
new DomesticPaymentCustomBehaviour { PreferMisspeltContractPresentIndicator = true },
DomesticVrpConsentAuthCodeGrantPost =
- new AuthCodeGrantPostCustomBehaviour { ExpectedResponseRefreshTokenMayBeAbsent = true },
+ new AuthCodeGrantPostCustomBehaviour(),
DomesticVrpConsent =
new DomesticVrpConsentCustomBehaviour { PreferMisspeltContractPresentIndicator = true },
DomesticVrp = new DomesticVrpCustomBehaviour
diff --git a/src/OpenBanking.Library.Connector/BankProfiles/Generators/NatWestGenerator.cs b/src/OpenBanking.Library.Connector/BankProfiles/Generators/NatWestGenerator.cs
index 56618c14..ea3fc1e7 100644
--- a/src/OpenBanking.Library.Connector/BankProfiles/Generators/NatWestGenerator.cs
+++ b/src/OpenBanking.Library.Connector/BankProfiles/Generators/NatWestGenerator.cs
@@ -198,34 +198,34 @@ bank is NatWestBank.NatWestSandbox or NatWestBank.RoyalBankOfScotlandSandbox
new IdTokenProcessingCustomBehaviour { IssClaim = GetAudClaim(bank) }
},
AccountAccessConsentPost = bank is NatWestBank.Coutts
- ? new ReadWritePostCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWritePostCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
AccountAccessConsentGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
AccountGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
BalanceGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
DirectDebitGet = bank is NatWestBank.Coutts
- ? new DirectDebitGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new DirectDebitGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
MonzoPotGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
Party2Get = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
PartyGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
StandingOrderGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
TransactionGet = bank is NatWestBank.Coutts
- ? new ReadWriteGetCustomBehaviour { ResponseLinksMayAddSlash = true }
+ ? new ReadWriteGetCustomBehaviour { ResponseLinksMayHaveIncorrectUrlBeforeQuery = true }
: null,
DomesticPaymentConsentAuthGet = new ConsentAuthGetCustomBehaviour
{
@@ -312,6 +312,10 @@ bank is NatWestBank.NatWestSandbox or NatWestBank.RoyalBankOfScotlandSandbox
},
DomesticVrp = new DomesticVrpCustomBehaviour
{
+ RefundResponseJsonConverter =
+ bank is NatWestBank.NatWestSandbox or NatWestBank.RoyalBankOfScotlandSandbox
+ ? DomesticVrpRefundConverterOptions.ContainsNestedAccountProperty
+ : null,
PreferMisspeltContractPresentIndicator = true,
ResponseDataStatusMayBeMissingOrWrong =
bank is NatWestBank.NatWestSandbox or NatWestBank.RoyalBankOfScotlandSandbox,
diff --git a/src/OpenBanking.Library.Connector/BankProfiles/Generators/TideGenerator.cs b/src/OpenBanking.Library.Connector/BankProfiles/Generators/TideGenerator.cs
index f756cf1b..da2070bb 100644
--- a/src/OpenBanking.Library.Connector/BankProfiles/Generators/TideGenerator.cs
+++ b/src/OpenBanking.Library.Connector/BankProfiles/Generators/TideGenerator.cs
@@ -66,6 +66,11 @@ public override BankProfile GetBankProfile(
UseReadRefundAccount = false,
PreferPartyToPartyPaymentContextCode = true,
UseContractPresentIndicator = false
+ },
+ BankConfigurationApiSettings = new BankConfigurationApiSettings
+ {
+ UseRegistrationGetEndpoint = true,
+ UseRegistrationDeleteEndpoint = true
}
};
diff --git a/src/OpenBanking.Library.Connector/Models/Configuration/DatabaseSettings.cs b/src/OpenBanking.Library.Connector/Models/Configuration/DatabaseSettings.cs
index de41921d..53dbd946 100644
--- a/src/OpenBanking.Library.Connector/Models/Configuration/DatabaseSettings.cs
+++ b/src/OpenBanking.Library.Connector/Models/Configuration/DatabaseSettings.cs
@@ -28,7 +28,6 @@ public class DatabaseSettings : ISettings
public Dictionary ConnectionStrings { get; set; } =
new()
{
- [DbProvider.Sqlite] = string.Empty,
[DbProvider.PostgreSql] = string.Empty,
[DbProvider.MongoDb] = string.Empty
};
@@ -39,7 +38,6 @@ public class DatabaseSettings : ISettings
public Dictionary Names { get; set; } =
new()
{
- [DbProvider.Sqlite] = string.Empty,
[DbProvider.PostgreSql] = string.Empty,
[DbProvider.MongoDb] = string.Empty
};
@@ -47,7 +45,6 @@ public class DatabaseSettings : ISettings
public Dictionary PasswordSources { get; set; } =
new()
{
- [DbProvider.Sqlite] = SecretSource.Configuration,
[DbProvider.PostgreSql] = SecretSource.Configuration,
[DbProvider.MongoDb] = SecretSource.Configuration
};
diff --git a/src/OpenBanking.Library.Connector/Models/Persistent/Configuration/Management/BankRegistration.cs b/src/OpenBanking.Library.Connector/Models/Persistent/Configuration/Management/BankRegistration.cs
index fe6621a5..6c18e13b 100644
--- a/src/OpenBanking.Library.Connector/Models/Persistent/Configuration/Management/BankRegistration.cs
+++ b/src/OpenBanking.Library.Connector/Models/Persistent/Configuration/Management/BankRegistration.cs
@@ -86,11 +86,6 @@ public override void Configure(EntityTypeBuilder builder
builder.Property(e => e.RedirectUris).HasColumnType("jsonb");
}
- if (_dbProvider is DbProvider.Sqlite)
- {
- builder.Property(e => e.Created).HasConversion(new DateTimeOffsetToBinaryConverter());
- }
-
// Only set up relationships (foreign keys and navigations) if not MongoDB
if (_dbProvider is not DbProvider.MongoDb)
{
diff --git a/src/OpenBanking.Library.Connector/OpenBanking.Library.Connector.csproj b/src/OpenBanking.Library.Connector/OpenBanking.Library.Connector.csproj
index 2d208fa9..687b5aac 100644
--- a/src/OpenBanking.Library.Connector/OpenBanking.Library.Connector.csproj
+++ b/src/OpenBanking.Library.Connector/OpenBanking.Library.Connector.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector
@@ -23,17 +23,16 @@
-
+
-
-
-
+
+
-
+
diff --git a/src/OpenBanking.Library.Connector/Persistence/DbProvider.cs b/src/OpenBanking.Library.Connector/Persistence/DbProvider.cs
index 402ff17c..19ef20cb 100644
--- a/src/OpenBanking.Library.Connector/Persistence/DbProvider.cs
+++ b/src/OpenBanking.Library.Connector/Persistence/DbProvider.cs
@@ -6,7 +6,6 @@ namespace FinnovationLabs.OpenBanking.Library.Connector.Persistence;
public enum DbProvider
{
- Sqlite,
PostgreSql,
MongoDb
}
diff --git a/src/OpenBanking.Library.Connector/Persistence/SqliteDbContext.cs b/src/OpenBanking.Library.Connector/Persistence/SqliteDbContext.cs
deleted file mode 100644
index 0fb64f2d..00000000
--- a/src/OpenBanking.Library.Connector/Persistence/SqliteDbContext.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Licensed to Finnovation Labs Limited under one or more agreements.
-// Finnovation Labs Limited licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using Microsoft.EntityFrameworkCore;
-using Newtonsoft.Json;
-
-namespace FinnovationLabs.OpenBanking.Library.Connector.Persistence;
-
-///
-/// SQLite DB context.
-/// Specifies JSON indenting to aid visualisation (SQLite context mainly used for debug).
-///
-///
-public class SqliteDbContext(DbContextOptions options)
- : BaseDbContext(options, DbProvider.Sqlite, true, Formatting.Indented) { }
diff --git a/src/OpenBanking.Library.Connector/Services/DbConnectionString.cs b/src/OpenBanking.Library.Connector/Services/DbConnectionString.cs
index 7ad052f3..47c100db 100644
--- a/src/OpenBanking.Library.Connector/Services/DbConnectionString.cs
+++ b/src/OpenBanking.Library.Connector/Services/DbConnectionString.cs
@@ -56,7 +56,6 @@ public DbConnectionString(DatabaseSettings settings, ISecretProvider secretProvi
return settings.Provider switch
{
- DbProvider.Sqlite => connectionString,
DbProvider.PostgreSql => connectionString + (password is not null ? $";Password={password}" : ""),
DbProvider.MongoDb => AddMongoDbPassword(connectionString, password),
_ => throw new ArgumentOutOfRangeException(nameof(settings.Provider), settings.Provider, null)
diff --git a/src/OpenBanking.WebApp.Connector/Dockerfile b/src/OpenBanking.WebApp.Connector/Dockerfile
index fd70c5d8..dcf9adc9 100644
--- a/src/OpenBanking.WebApp.Connector/Dockerfile
+++ b/src/OpenBanking.WebApp.Connector/Dockerfile
@@ -1,5 +1,6 @@
-FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG TARGETARCH
+ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
# Restore Open Banking Connector
WORKDIR /src
@@ -14,7 +15,7 @@ RUN dotnet restore -a $TARGETARCH "OpenBanking.WebApp.Connector/OpenBanking.WebA
COPY src/. ./
RUN dotnet publish -a $TARGETARCH "OpenBanking.WebApp.Connector/OpenBanking.WebApp.Connector.csproj" -c Release --no-restore -o /app/publish
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
# Get UK Open Banking sandbox and prod root/issuing CA certs
WORKDIR /app/certs
diff --git a/src/OpenBanking.WebApp.Connector/OpenBanking.WebApp.Connector.csproj b/src/OpenBanking.WebApp.Connector/OpenBanking.WebApp.Connector.csproj
index 51340272..af659959 100644
--- a/src/OpenBanking.WebApp.Connector/OpenBanking.WebApp.Connector.csproj
+++ b/src/OpenBanking.WebApp.Connector/OpenBanking.WebApp.Connector.csproj
@@ -1,13 +1,13 @@
- net9.0
+ net10.0
enable
enable
aa921213-9461-4f9e-8fec-153624ec67ad
FinnovationLabs.OpenBanking.WebApp.Connector
FinnovationLabs.OpenBanking.WebApp.Connector
- 20.0.0
+ 21.0.0
Finnovation Labs Limited and Contributors
Finnovation Labs Limited
false
@@ -16,14 +16,14 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
diff --git a/src/OpenBanking.WebApp.Connector/appsettings.Development.json b/src/OpenBanking.WebApp.Connector/appsettings.Development.json
index 76e4bb07..2653eaba 100644
--- a/src/OpenBanking.WebApp.Connector/appsettings.Development.json
+++ b/src/OpenBanking.WebApp.Connector/appsettings.Development.json
@@ -11,7 +11,6 @@
"OpenBankingConnector": {
"Database": {
"ConnectionStrings": {
- "Sqlite": "Data Source=./sqliteTestDb.db",
"PostgreSql": "Host=localhost;Database=test;Username=postgres",
"MongoDb": "mongodb://localhost:27017"
}
diff --git a/test/OpenBanking.Library.Connector.BankTests/OpenBanking.Library.Connector.BankTests.csproj b/test/OpenBanking.Library.Connector.BankTests/OpenBanking.Library.Connector.BankTests.csproj
index 1ae9f180..48500646 100644
--- a/test/OpenBanking.Library.Connector.BankTests/OpenBanking.Library.Connector.BankTests.csproj
+++ b/test/OpenBanking.Library.Connector.BankTests/OpenBanking.Library.Connector.BankTests.csproj
@@ -1,7 +1,7 @@
-
+
- net9.0
+ net10.0
enable
enable
aa921213-9461-4f9e-8fec-153624ec67ad
@@ -16,11 +16,10 @@
-
-
-
-
-
+
+
+
+
diff --git a/test/OpenBanking.Library.Connector.BankTests/appsettings.Development.json b/test/OpenBanking.Library.Connector.BankTests/appsettings.Development.json
index c15087a9..2653eaba 100644
--- a/test/OpenBanking.Library.Connector.BankTests/appsettings.Development.json
+++ b/test/OpenBanking.Library.Connector.BankTests/appsettings.Development.json
@@ -11,7 +11,6 @@
"OpenBankingConnector": {
"Database": {
"ConnectionStrings": {
- "Sqlite": "Data Source=../../../sqliteTestDb.db",
"PostgreSql": "Host=localhost;Database=test;Username=postgres",
"MongoDb": "mongodb://localhost:27017"
}
diff --git a/test/OpenBanking.Library.Connector.Benchmarks/OpenBanking.Library.Connector.Benchmarks.csproj b/test/OpenBanking.Library.Connector.Benchmarks/OpenBanking.Library.Connector.Benchmarks.csproj
index daf40311..68c0f202 100644
--- a/test/OpenBanking.Library.Connector.Benchmarks/OpenBanking.Library.Connector.Benchmarks.csproj
+++ b/test/OpenBanking.Library.Connector.Benchmarks/OpenBanking.Library.Connector.Benchmarks.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector.Benchmarks
diff --git a/test/OpenBanking.Library.Connector.IntegrationTests/DbTest.cs b/test/OpenBanking.Library.Connector.IntegrationTests/DbTest.cs
index 89d225be..16c7d297 100644
--- a/test/OpenBanking.Library.Connector.IntegrationTests/DbTest.cs
+++ b/test/OpenBanking.Library.Connector.IntegrationTests/DbTest.cs
@@ -3,30 +3,27 @@
// See the LICENSE file in the project root for more information.
using FinnovationLabs.OpenBanking.Library.Connector.Persistence;
-using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
namespace FinnovationLabs.OpenBanking.Library.Connector.IntegrationTests;
-// Makes available in-memory SQLite database
+// Makes available in-memory EF Core database
public abstract class DbTest : IDisposable
{
- protected readonly SqliteDbContext _dB;
- private readonly SqliteConnection _dBConnection;
+ protected readonly BaseDbContext _dB;
protected DbTest()
{
- _dBConnection = new SqliteConnection("DataSource=:memory:");
- _dBConnection.Open(); // Creates DB
- DbContextOptions dbContextOptions = new DbContextOptionsBuilder()
- .UseSqlite(_dBConnection)
- .Options;
- _dB = new SqliteDbContext(dbContextOptions);
+ DbContextOptions dbContextOptions =
+ new DbContextOptionsBuilder()
+ .UseInMemoryDatabase(Guid.NewGuid().ToString())
+ .Options;
+ _dB = new PostgreSqlDbContext(dbContextOptions);
_dB.Database.EnsureCreated(); // Initialise DB with schema
}
public void Dispose()
{
- _dBConnection.Close(); // Deletes DB
+ _dB.Dispose();
}
}
diff --git a/test/OpenBanking.Library.Connector.IntegrationTests/OpenBanking.Library.Connector.IntegrationTests.csproj b/test/OpenBanking.Library.Connector.IntegrationTests/OpenBanking.Library.Connector.IntegrationTests.csproj
index 65cfe189..3010b14f 100644
--- a/test/OpenBanking.Library.Connector.IntegrationTests/OpenBanking.Library.Connector.IntegrationTests.csproj
+++ b/test/OpenBanking.Library.Connector.IntegrationTests/OpenBanking.Library.Connector.IntegrationTests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector.IntegrationTests
@@ -14,8 +14,9 @@
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/test/OpenBanking.Library.Connector.IntegrationTests/Persistence/DomesticConsentRepoTests.cs b/test/OpenBanking.Library.Connector.IntegrationTests/Persistence/DomesticConsentRepoTests.cs
deleted file mode 100644
index 6831b7dd..00000000
--- a/test/OpenBanking.Library.Connector.IntegrationTests/Persistence/DomesticConsentRepoTests.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-// Licensed to Finnovation Labs Limited under one or more agreements.
-// Finnovation Labs Limited licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using FinnovationLabs.OpenBanking.Library.Connector.Models.Persistent.PaymentInitiation;
-using FinnovationLabs.OpenBanking.Library.Connector.Persistence;
-using Xunit;
-
-namespace FinnovationLabs.OpenBanking.Library.Connector.IntegrationTests.Persistence;
-
-public class DomesticConsentRepoTests : DbTest
-{
- private readonly IDbMethods _dbSaveChangesMethod;
- private readonly ITestOutputHelper _output;
- private readonly IDbEntityMethods _repo;
-
- public DomesticConsentRepoTests(ITestOutputHelper output)
- {
- _repo = new DbEntityMethods(_dB);
- _dbSaveChangesMethod = new DbMethods(_dB);
- _output = output;
- }
-
- // [Theory]
- // [InlineData(1)]
- // [InlineData(3)]
- // [InlineData(5)]
- // [InlineData(11)]
- // [InlineData(15)]
- // public async Task GetAsync_ByExpression_GetByUniqueProperty(int count)
- // {
- // var latestGuid = Guid.NewGuid();
- // List items = Enumerable.Range(1, count)
- // .Select(
- // i =>
- // {
- // latestGuid = Guid.NewGuid();
- // return new DomesticPaymentConsent
- // {
- // BankApiInformationId = Guid.NewGuid(),
- // BankApiRequest = new PaymentInitiationModelsPublic.OBWriteDomesticConsent4(),
- // BankApiResponse =
- // new ReadWriteProperty(
- // new PaymentInitiationModelsPublic.OBWriteDomesticConsentResponse5(),
- // new TimeProvider(),
- // ""),
- // //Id = i.ToString()
- // Id = latestGuid
- // };
- // }).ToList();
- // foreach (var dc in items)
- // {
- // await _repo.AddAsync(dc);
- // }
- //
- // _dbSaveChangesMethod.SaveChangesAsync().Wait();
- //
- // IQueryable q = await _repo.GetNoTrackingAsync(x => x.Id == latestGuid);
- //
- // List results = q.ToList();
- //
- // results.Should().HaveCount(1);
- // results[0].Should().Be(items.Last());
- // }
- //
- // [Theory]
- // [InlineData(1)]
- // [InlineData(3)]
- // [InlineData(5)]
- // [InlineData(11)]
- // [InlineData(15)]
- // public async Task GetAsync_ByExpression_GetByAll(int count)
- // {
- // var latestGuid = Guid.NewGuid();
- // List items = Enumerable.Range(1, count)
- // .Select(
- // i =>
- // {
- // latestGuid = Guid.NewGuid();
- // return new DomesticPaymentConsent
- // {
- // BankApiInformationId = Guid.NewGuid(),
- // BankApiRequest = new PaymentInitiationModelsPublic.OBWriteDomesticConsent4(),
- // BankApiResponse =
- // new ReadWriteProperty(
- // new PaymentInitiationModelsPublic.OBWriteDomesticConsentResponse5(),
- // new TimeProvider(),
- // ""),
- // //Id = i.ToString()
- // Id = latestGuid
- // };
- // }).ToList();
- // foreach (var dc in items)
- // {
- // await _repo.AddAsync(dc);
- // }
- //
- // _dbSaveChangesMethod.SaveChangesAsync().Wait();
- //
- // IQueryable q = await _repo.GetNoTrackingAsync(x => true);
- //
- // List results = q.ToList();
- //
- // results.Should().BeEquivalentTo(items);
- // }
- //
- // [Theory]
- // [InlineData(1)]
- // [InlineData(3)]
- // [InlineData(5)]
- // [InlineData(11)]
- // [InlineData(15)]
- // public async Task GetAsync_ByExpression_GetEmptySetByUniqueProperty(int count)
- // {
- // var latestGuid = Guid.NewGuid();
- // List items = Enumerable.Range(1, count)
- // .Select(
- // i =>
- // {
- // latestGuid = Guid.NewGuid();
- // return new DomesticPaymentConsent
- // {
- // BankApiInformationId = Guid.NewGuid(),
- // BankApiRequest = new PaymentInitiationModelsPublic.OBWriteDomesticConsent4(),
- // BankApiResponse =
- // new ReadWriteProperty(
- // new PaymentInitiationModelsPublic.OBWriteDomesticConsentResponse5(),
- // new TimeProvider(),
- // ""),
- // //Id = (-i).ToString()
- // Id = latestGuid
- // };
- // }).ToList();
- // foreach (var dc in items)
- // {
- // await _repo.AddAsync(dc);
- // }
- //
- // _dbSaveChangesMethod.SaveChangesAsync().Wait();
- //
- // IQueryable q = await _repo.GetNoTrackingAsync(x => x.Id == latestGuid);
- //
- // List results = q.ToList();
- //
- // results.Should().HaveCount(0);
- // }
-}
diff --git a/test/OpenBanking.Library.Connector.UnitTests/OpenBanking.Library.Connector.UnitTests.csproj b/test/OpenBanking.Library.Connector.UnitTests/OpenBanking.Library.Connector.UnitTests.csproj
index d4a9604a..0af976fc 100644
--- a/test/OpenBanking.Library.Connector.UnitTests/OpenBanking.Library.Connector.UnitTests.csproj
+++ b/test/OpenBanking.Library.Connector.UnitTests/OpenBanking.Library.Connector.UnitTests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
enable
enable
FinnovationLabs.OpenBanking.Library.Connector.UnitTests
@@ -14,8 +14,8 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive