diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index cda2de9..d4a0284 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -1,3 +1,4 @@
+# https://github.com/github/codeql-action
name: "CodeQL"
on:
@@ -31,6 +32,11 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: "9.0.x"
+
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
diff --git a/.github/workflows/devskim-analysis.yml b/.github/workflows/devskim-analysis.yml
index c0bc870..302cfd4 100644
--- a/.github/workflows/devskim-analysis.yml
+++ b/.github/workflows/devskim-analysis.yml
@@ -1,3 +1,4 @@
+# https://github.com/microsoft/DevSkim-Action
name: DevSkim
on:
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 2e90da4..681c8a7 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -1,3 +1,4 @@
+# https://github.com/actions/setup-dotnet
name: Build
on:
@@ -13,7 +14,6 @@ on:
- "**/*.yml"
env:
- DOTNET_VERSION: "8.0.x"
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
@@ -32,7 +32,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: ${{ env.DOTNET_VERSION }}
+ dotnet-version: "9.0.x"
- name: Restore dependencies
run: dotnet restore Shop.sln
diff --git a/.github/workflows/sonar-cloud.yml b/.github/workflows/sonar-cloud.yml
index a5f8d4d..9018d54 100644
--- a/.github/workflows/sonar-cloud.yml
+++ b/.github/workflows/sonar-cloud.yml
@@ -1,3 +1,4 @@
+# https://github.com/SonarSource/sonarcloud-github-action
name: SonarCloud
on:
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 62f0cae..d5233fa 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -18,55 +18,56 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
+
-
+
diff --git a/README.md b/README.md
index 5cb9c03..39d3bb4 100644
--- a/README.md
+++ b/README.md
@@ -26,8 +26,8 @@ If you liked this project, learned something, give it a star. Thank you!
## **Technologies**
-- ASP.NET Core 8
-- Entity Framework Core 8
+- ASP.NET Core 9
+- Entity Framework Core 9
- Unit & Integration Tests + xUnit + FluentAssertions
- Polly
- AutoMapper
@@ -73,7 +73,7 @@ docker-compose up --build --abort-on-container-exit --remove-orphans
Now just open the url in the browser:
```csharp
-http://localhost:5072/swagger/
+http://localhost:{port}/swagger/
```
@@ -83,7 +83,7 @@ http://localhost:5072/swagger/
To access the page with the performance indicators and performance:
```csharp
-http://localhost:5072/profiler/results-index
+http://localhost:{port}/profiler/results-index
```
## License
diff --git a/global.json b/global.json
index 8baf7f1..733b653 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.400",
+ "version": "9.0.100",
"rollForward": "latestMajor",
"allowPrerelease": false
}
diff --git a/src/Shop.Application/Shop.Application.csproj b/src/Shop.Application/Shop.Application.csproj
index df7aca3..8dddd7e 100644
--- a/src/Shop.Application/Shop.Application.csproj
+++ b/src/Shop.Application/Shop.Application.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
diff --git a/src/Shop.Core/Shop.Core.csproj b/src/Shop.Core/Shop.Core.csproj
index 412b083..3b97659 100644
--- a/src/Shop.Core/Shop.Core.csproj
+++ b/src/Shop.Core/Shop.Core.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
diff --git a/src/Shop.Domain/Shop.Domain.csproj b/src/Shop.Domain/Shop.Domain.csproj
index 08fb880..cf89560 100644
--- a/src/Shop.Domain/Shop.Domain.csproj
+++ b/src/Shop.Domain/Shop.Domain.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
diff --git a/src/Shop.Infrastructure/Shop.Infrastructure.csproj b/src/Shop.Infrastructure/Shop.Infrastructure.csproj
index 3a69b88..b7c1b10 100644
--- a/src/Shop.Infrastructure/Shop.Infrastructure.csproj
+++ b/src/Shop.Infrastructure/Shop.Infrastructure.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
diff --git a/src/Shop.PublicApi/Dockerfile b/src/Shop.PublicApi/Dockerfile
index 7148a2a..3c176da 100644
--- a/src/Shop.PublicApi/Dockerfile
+++ b/src/Shop.PublicApi/Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/aspnet:8.0-bookworm-slim AS base
+FROM mcr.microsoft.com/dotnet/aspnet:9.0-bookworm-slim AS base
WORKDIR /app
EXPOSE 80
@@ -10,7 +10,7 @@ ENV DOTNET_NOLOGO=1
# Specifies whether data about the .NET tools usage is collected and sent to Microsoft.
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
-FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim AS build
+FROM mcr.microsoft.com/dotnet/sdk:9.0-bookworm-slim AS build
WORKDIR /src
COPY ["Directory.Packages.props", "."]
COPY ["Directory.Build.props", "."]
diff --git a/src/Shop.PublicApi/Extensions/ServicesCollectionExtensions.cs b/src/Shop.PublicApi/Extensions/ServicesCollectionExtensions.cs
index d7baa2c..c9090f5 100644
--- a/src/Shop.PublicApi/Extensions/ServicesCollectionExtensions.cs
+++ b/src/Shop.PublicApi/Extensions/ServicesCollectionExtensions.cs
@@ -2,6 +2,7 @@ using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
+using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.Extensions.Configuration;
@@ -67,13 +68,16 @@ internal static class ServicesCollectionExtensions
healthCheckBuilder.AddRedis(options.CacheConnection);
}
- public static IServiceCollection AddWriteDbContext(this IServiceCollection services)
+ public static IServiceCollection AddWriteDbContext(this IServiceCollection services, IWebHostEnvironment environment)
{
- services.AddDbContext((serviceProvider, optionsBuilder) =>
- ConfigureDbContext(serviceProvider, optionsBuilder, QueryTrackingBehavior.TrackAll));
+ if (!environment.IsEnvironment("Testing"))
+ {
+ services.AddDbContext((serviceProvider, optionsBuilder) =>
+ ConfigureDbContext(serviceProvider, optionsBuilder, QueryTrackingBehavior.TrackAll));
- services.AddDbContext((serviceProvider, optionsBuilder) =>
- ConfigureDbContext(serviceProvider, optionsBuilder, QueryTrackingBehavior.NoTrackingWithIdentityResolution));
+ services.AddDbContext((serviceProvider, optionsBuilder) =>
+ ConfigureDbContext(serviceProvider, optionsBuilder, QueryTrackingBehavior.NoTrackingWithIdentityResolution));
+ }
return services;
}
diff --git a/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.Designer.cs b/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.Designer.cs
new file mode 100644
index 0000000..0f0888a
--- /dev/null
+++ b/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.Designer.cs
@@ -0,0 +1,90 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Shop.Infrastructure.Data.Context;
+
+#nullable disable
+
+namespace Shop.PublicApi.Migrations
+{
+ [DbContext(typeof(WriteDbContext))]
+ [Migration("20241128202054_EF_Update")]
+ partial class EF_Update
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseCollation("Latin1_General_CI_AI")
+ .HasAnnotation("ProductVersion", "9.0.0")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Shop.Domain.Entities.CustomerAggregate.Customer", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DateOfBirth")
+ .HasColumnType("DATE");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)");
+
+ b.Property("Gender")
+ .IsRequired()
+ .HasMaxLength(6)
+ .HasColumnType("nvarchar(6)");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Customers");
+ });
+
+ modelBuilder.Entity("Shop.Domain.Entities.CustomerAggregate.Customer", b =>
+ {
+ b.OwnsOne("Shop.Domain.ValueObjects.Email", "Email", b1 =>
+ {
+ b1.Property("CustomerId")
+ .HasColumnType("uniqueidentifier");
+
+ b1.Property("Address")
+ .IsRequired()
+ .HasMaxLength(254)
+ .IsUnicode(false)
+ .HasColumnType("varchar(254)")
+ .HasColumnName("Email");
+
+ b1.HasKey("CustomerId");
+
+ b1.HasIndex("Address")
+ .IsUnique()
+ .HasFilter("[Email] IS NOT NULL");
+
+ b1.ToTable("Customers");
+
+ b1.WithOwner()
+ .HasForeignKey("CustomerId");
+ });
+
+ b.Navigation("Email");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.cs b/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.cs
new file mode 100644
index 0000000..3b2de85
--- /dev/null
+++ b/src/Shop.PublicApi/Migrations/20241128202054_EF_Update.cs
@@ -0,0 +1,39 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Shop.PublicApi.Migrations;
+
+///
+public partial class EF_Update : Migration
+{
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "Gender",
+ table: "Customers",
+ type: "nvarchar(6)",
+ maxLength: 6,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "varchar(6)",
+ oldUnicode: false,
+ oldMaxLength: 6);
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "Gender",
+ table: "Customers",
+ type: "varchar(6)",
+ unicode: false,
+ maxLength: 6,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(6)",
+ oldMaxLength: 6);
+ }
+}
\ No newline at end of file
diff --git a/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.Designer.cs b/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.Designer.cs
new file mode 100644
index 0000000..f4cf229
--- /dev/null
+++ b/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.Designer.cs
@@ -0,0 +1,61 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Shop.Infrastructure.Data.Context;
+
+#nullable disable
+
+namespace Shop.PublicApi.Migrations.EventStoreDb
+{
+ [DbContext(typeof(EventStoreDbContext))]
+ [Migration("20241128202230_EF_Update")]
+ partial class EF_Update
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseCollation("Latin1_General_CI_AI")
+ .HasAnnotation("ProductVersion", "9.0.0")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Shop.Core.SharedKernel.EventStore", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AggregateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Data")
+ .IsRequired()
+ .HasMaxLength(255)
+ .IsUnicode(false)
+ .HasColumnType("varchar(255)")
+ .HasComment("JSON serialized event");
+
+ b.Property("MessageType")
+ .IsRequired()
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)");
+
+ b.Property("OccurredOn")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreatedAt");
+
+ b.HasKey("Id");
+
+ b.ToTable("EventStores");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.cs b/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.cs
new file mode 100644
index 0000000..ee5edb8
--- /dev/null
+++ b/src/Shop.PublicApi/Migrations/EventStoreDb/20241128202230_EF_Update.cs
@@ -0,0 +1,43 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Shop.PublicApi.Migrations.EventStoreDb;
+
+///
+public partial class EF_Update : Migration
+{
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "Data",
+ table: "EventStores",
+ type: "varchar(255)",
+ unicode: false,
+ maxLength: 255,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "VARCHAR(MAX)",
+ oldUnicode: false,
+ comment: "JSON serialized event",
+ oldComment: "JSON serialized event");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "Data",
+ table: "EventStores",
+ type: "VARCHAR(MAX)",
+ unicode: false,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "varchar(255)",
+ oldUnicode: false,
+ oldMaxLength: 255,
+ comment: "JSON serialized event",
+ oldComment: "JSON serialized event");
+ }
+}
\ No newline at end of file
diff --git a/src/Shop.PublicApi/Migrations/EventStoreDb/EventStoreDbContextModelSnapshot.cs b/src/Shop.PublicApi/Migrations/EventStoreDb/EventStoreDbContextModelSnapshot.cs
index cc813c6..6f6d371 100644
--- a/src/Shop.PublicApi/Migrations/EventStoreDb/EventStoreDbContextModelSnapshot.cs
+++ b/src/Shop.PublicApi/Migrations/EventStoreDb/EventStoreDbContextModelSnapshot.cs
@@ -2,6 +2,8 @@
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Shop.Infrastructure.Data.Context;
#nullable disable
@@ -16,12 +18,12 @@ namespace Shop.PublicApi.Migrations.EventStoreDb
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AI")
- .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("ProductVersion", "9.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
- modelBuilder.Entity("Shop.Core.Events.EventStore", b =>
+ modelBuilder.Entity("Shop.Core.SharedKernel.EventStore", b =>
{
b.Property("Id")
.HasColumnType("uniqueidentifier");
@@ -31,8 +33,9 @@ namespace Shop.PublicApi.Migrations.EventStoreDb
b.Property("Data")
.IsRequired()
+ .HasMaxLength(255)
.IsUnicode(false)
- .HasColumnType("VARCHAR(MAX)")
+ .HasColumnType("varchar(255)")
.HasComment("JSON serialized event");
b.Property("MessageType")
diff --git a/src/Shop.PublicApi/Migrations/WriteDbContextModelSnapshot.cs b/src/Shop.PublicApi/Migrations/WriteDbContextModelSnapshot.cs
index 3c638fd..74fb547 100644
--- a/src/Shop.PublicApi/Migrations/WriteDbContextModelSnapshot.cs
+++ b/src/Shop.PublicApi/Migrations/WriteDbContextModelSnapshot.cs
@@ -2,6 +2,8 @@
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Shop.Infrastructure.Data.Context;
#nullable disable
@@ -16,12 +18,12 @@ namespace Shop.PublicApi.Migrations
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AI")
- .HasAnnotation("ProductVersion", "7.0.2")
+ .HasAnnotation("ProductVersion", "9.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
- modelBuilder.Entity("Shop.Domain.Entities.Customer.Customer", b =>
+ modelBuilder.Entity("Shop.Domain.Entities.CustomerAggregate.Customer", b =>
{
b.Property("Id")
.HasColumnType("uniqueidentifier");
@@ -38,8 +40,7 @@ namespace Shop.PublicApi.Migrations
b.Property("Gender")
.IsRequired()
.HasMaxLength(6)
- .IsUnicode(false)
- .HasColumnType("varchar(6)");
+ .HasColumnType("nvarchar(6)");
b.Property("LastName")
.IsRequired()
@@ -52,7 +53,7 @@ namespace Shop.PublicApi.Migrations
b.ToTable("Customers");
});
- modelBuilder.Entity("Shop.Domain.Entities.Customer.Customer", b =>
+ modelBuilder.Entity("Shop.Domain.Entities.CustomerAggregate.Customer", b =>
{
b.OwnsOne("Shop.Domain.ValueObjects.Email", "Email", b1 =>
{
diff --git a/src/Shop.PublicApi/Program.cs b/src/Shop.PublicApi/Program.cs
index 62d8dbf..3752426 100644
--- a/src/Shop.PublicApi/Program.cs
+++ b/src/Shop.PublicApi/Program.cs
@@ -65,7 +65,7 @@ builder.Services
.AddInfrastructure()
.AddCommandHandlers()
.AddQueryHandlers()
- .AddWriteDbContext()
+ .AddWriteDbContext(builder.Environment)
.AddWriteOnlyRepositories()
.AddReadDbContext()
.AddReadOnlyRepositories()
diff --git a/src/Shop.PublicApi/Shop.PublicApi.csproj b/src/Shop.PublicApi/Shop.PublicApi.csproj
index 83b4a13..e295b61 100644
--- a/src/Shop.PublicApi/Shop.PublicApi.csproj
+++ b/src/Shop.PublicApi/Shop.PublicApi.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
true
true
7d8d0af0-7540-48a6-b160-d34c988a1ad6
@@ -61,6 +61,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -76,7 +77,7 @@
-
+
\ No newline at end of file
diff --git a/src/Shop.Query/Shop.Query.csproj b/src/Shop.Query/Shop.Query.csproj
index 36952c7..f61c21a 100644
--- a/src/Shop.Query/Shop.Query.csproj
+++ b/src/Shop.Query/Shop.Query.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
diff --git a/tests/Shop.IntegrationTests/Controllers/V1/CustomersControllerTests.cs b/tests/Shop.IntegrationTests/Controllers/V1/CustomersControllerTests.cs
index b7d4476..2f5db7f 100644
--- a/tests/Shop.IntegrationTests/Controllers/V1/CustomersControllerTests.cs
+++ b/tests/Shop.IntegrationTests/Controllers/V1/CustomersControllerTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Data.Common;
using System.Net;
using System.Threading.Tasks;
using Bogus;
@@ -9,6 +10,7 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
@@ -477,12 +479,14 @@ public class CustomersControllerTests : IAsyncLifetime
hostBuilder.UseSetting("CacheOptions:AbsoluteExpirationInHours", "1");
hostBuilder.UseSetting("CacheOptions:SlidingExpirationInSeconds", "30");
- hostBuilder.UseEnvironment(Environments.Production);
+ hostBuilder.UseEnvironment("Testing");
hostBuilder.ConfigureLogging(logging => logging.ClearProviders());
hostBuilder.ConfigureServices(services =>
{
+ services.RemoveAll();
+ services.RemoveAll();
services.RemoveAll();
services.RemoveAll>();
services.RemoveAll();
@@ -491,10 +495,14 @@ public class CustomersControllerTests : IAsyncLifetime
services.RemoveAll();
services.AddDbContext(
- options => options.UseSqlite(_writeDbContextSqlite));
+ options => options
+ .UseSqlite(_writeDbContextSqlite)
+ .ConfigureWarnings(warningBuilder => warningBuilder.Ignore(InMemoryEventId.TransactionIgnoredWarning)));
services.AddDbContext(
- options => options.UseSqlite(_eventStoreDbContextSqlite));
+ options => options
+ .UseSqlite(_eventStoreDbContextSqlite)
+ .ConfigureWarnings(warningBuilder => warningBuilder.Ignore(InMemoryEventId.TransactionIgnoredWarning)));
services.AddSingleton(_ => Substitute.For());
services.AddSingleton(_ => Substitute.For());
diff --git a/tests/Shop.IntegrationTests/Extensions/TRequestExtensions.cs b/tests/Shop.IntegrationTests/Extensions/TRequestExtensions.cs
index ecc5ed6..32462f6 100644
--- a/tests/Shop.IntegrationTests/Extensions/TRequestExtensions.cs
+++ b/tests/Shop.IntegrationTests/Extensions/TRequestExtensions.cs
@@ -9,4 +9,4 @@ public static class TRequestExtensions
{
public static HttpContent ToJsonHttpContent(this TRequest request) =>
new StringContent(request.ToJson(), Encoding.UTF8, MediaTypeNames.Application.Json);
-}
+}
\ No newline at end of file
diff --git a/tests/Shop.IntegrationTests/Shop.IntegrationTests.csproj b/tests/Shop.IntegrationTests/Shop.IntegrationTests.csproj
index d12e00f..0a02efb 100644
--- a/tests/Shop.IntegrationTests/Shop.IntegrationTests.csproj
+++ b/tests/Shop.IntegrationTests/Shop.IntegrationTests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
false
true
True
@@ -60,6 +60,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/tests/Shop.UnitTests/Shop.UnitTests.csproj b/tests/Shop.UnitTests/Shop.UnitTests.csproj
index be61bcb..a7bf9bb 100644
--- a/tests/Shop.UnitTests/Shop.UnitTests.csproj
+++ b/tests/Shop.UnitTests/Shop.UnitTests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
false
true
True
@@ -57,6 +57,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+