Implemented featureflag for service layer caching

This commit is contained in:
2026-09-18 14:58:42 +02:00
parent ec777fabf8
commit 6d554d19a7
15 changed files with 233 additions and 76 deletions
@@ -2,6 +2,8 @@ namespace PostFundManagement.Domain.Extensions;
public static class Constants
{
public const string ServiceCachingFeature = "EnableServiceCaching";
public const string MainScope = "ApiScope";
public const string CorsPolicy = "AllowConfiguredOrigins";
@@ -12,9 +12,10 @@
<!-- Transformation -->
<ItemGroup>
<PackageReference Include="Humanizer" Version="3.0.10" />
<PackageReference Include="Microsoft.AspNetCore.OutputCaching.StackExchangeRedis" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Caching.Hybrid" Version="10.9.0" />
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.11" />
<PackageReference Include="Microsoft.AspNetCore.OutputCaching.StackExchangeRedis" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Caching.Hybrid" Version="10.10.0" />
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.12" />
<PackageReference Include="Microsoft.FeatureManagement.AspNetCore" Version="4.7.0" />
<PackageReference Include="Scrutor" Version="7.0.0" />
<Using Include="Humanizer" />
@@ -27,12 +28,12 @@
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
<PackageReference Include="IdentityModel" Version="6.2.0" />
<PackageReference Include="KubernetesClient" Version="19.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Certificate" Version="10.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.9.0" />
<PackageReference Include="Polly" Version="8.7.0" />
<PackageReference Include="Polly.Extensions" Version="8.7.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Certificate" Version="10.0.12" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.10.0" />
<PackageReference Include="Polly" Version="8.8.0" />
<PackageReference Include="Polly.Extensions" Version="8.8.0" />
<Using Include="System.Security.Claims" />
<Using Include="AccessTokenClient" />
@@ -62,8 +63,8 @@
<!-- API Documentation -->
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.11" />
<PackageReference Include="Scalar.AspNetCore" Version="2.17.2" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.12" />
<PackageReference Include="Scalar.AspNetCore" Version="2.17.4" />
<Using Include="Scalar.AspNetCore" />
<Using Include="Microsoft.OpenApi" />
@@ -73,17 +74,17 @@
<!-- Quartz Scheduler-->
<ItemGroup>
<PackageReference Include="Hashids.net" Version="1.7.0" />
<PackageReference Include="Meziantou.Analyzer" Version="3.0.203">
<PackageReference Include="Meziantou.Analyzer" Version="3.0.259">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="OpenTelemetry" Version="1.18.0" />
<PackageReference Include="Quartz" Version="3.20.0" />
<PackageReference Include="Quartz.Plugins" Version="3.20.0" />
<PackageReference Include="Quartz.Plugins.TimeZoneConverter" Version="3.20.0" />
<PackageReference Include="Quartz.Serialization.SystemTextJson" Version="3.20.0" />
<PackageReference Include="Quartz.AspNetCore" Version="3.20.0" />
<PackageReference Include="Quartz.Extensions.DependencyInjection" Version="3.20.0" />
<PackageReference Include="Quartz" Version="4.1.0" />
<PackageReference Include="Quartz.Plugins" Version="4.1.0" />
<PackageReference Include="Quartz.Plugins.TimeZoneConverter" Version="4.1.0" />
<PackageReference Include="Quartz.Serialization.SystemTextJson" Version="4.1.0" />
<PackageReference Include="Quartz.AspNetCore" Version="4.1.0" />
<PackageReference Include="Quartz.Extensions.DependencyInjection" Version="4.1.0" />
<!-- Global Usings -->
<Using Include="Quartz" />
@@ -91,11 +92,11 @@
<!-- Configuration -->
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.12" />
<!-- Global Usings -->
<Using Include="Microsoft.Extensions.Configuration" />
@@ -108,9 +109,9 @@
<PackageReference Include="AspNetCore.HealthChecks.UI.Core" Version="9.0.0" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Data" Version="9.0.0" />
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.11" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="10.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="10.0.12" />
<!-- Global Usings -->
<Using Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
@@ -136,18 +137,18 @@
<!-- Database -->
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.11">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.12" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.11">
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.12" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.3" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="10.0.11" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="10.0.12" />
<!-- Global Usings -->
<Using Include="Npgsql" />
@@ -159,8 +160,8 @@
<!-- Email -->
<ItemGroup>
<PackageReference Include="MailKit" Version="4.17.0" />
<PackageReference Include="MimeKit" Version="4.17.0" />
<PackageReference Include="MailKit" Version="4.18.0" />
<PackageReference Include="MimeKit" Version="4.18.0" />
<!-- Global Usings-->
<Using Include="MimeKit" />
@@ -179,8 +180,8 @@
<!-- Amazon S3 SDK -->
<ItemGroup>
<PackageReference Include="AWSSDK.Extensions.NetCore.Setup" Version="4.0.101.1" />
<PackageReference Include="AWSSDK.S3" Version="4.0.102.4" />
<PackageReference Include="AWSSDK.Extensions.NetCore.Setup" Version="4.0.101.4" />
<PackageReference Include="AWSSDK.S3" Version="4.0.103.3" />
<!-- global Usings -->
<Using Include="Amazon.S3" />