Skip to content

Commit 86e5eef

Browse files
Applied Asp.Versioning and RateLimiter to FullBuilder
1 parent eff2dce commit 86e5eef

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<ImplicitUsings>enable</ImplicitUsings>
55
<Nullable>enable</Nullable>
66
<IsPackable>true</IsPackable>
7-
<Version>2.1.27</Version>
7+
<Version>2.1.28</Version>
88
<Authors>Andrey Serdyuk</Authors>
99
<Company>TaskHub</Company>
1010
<PackageTags>#TaskHub</PackageTags>

TaskHub.Shared.Bootstraper/FullHostBuilder.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public async Task StartWith<TContext>(Action<HostOptions> action) where TContext
4141
builder.AddAuthorizationService();
4242
builder.AddAppOpenTelemetry();
4343
builder.AddAppRedis();
44+
builder.AddAppVersioning();
45+
builder.AddFixedRateLimiter();
4446
_initAct(builder);
4547
});
4648

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using Microsoft.AspNetCore.Builder;
2+
using System.Text;
3+
using TaskHub.Shared.ConfigurationTools;
4+
using TaskHub.Shared.RateLimiter;
5+
6+
namespace TaskHub.Shared.Bootstraper.Settings;
7+
8+
public static class AddRateLimiter
9+
{
10+
public static void AddFixedRateLimiter(this WebApplicationBuilder builder) => builder.Services.AddFixedRateLimiter(options =>
11+
{
12+
var section = builder.Configuration.GetSection("RateLimiter");
13+
options.IsEnabled = section.GetBool("IsEnabled");
14+
options.AutoReplenishment = section.GetBool("AutoReplenishment");
15+
options.PermitLimit = section.GetInt("PermitLimit");
16+
options.QueueLimit = section.GetInt("QueueLimit");
17+
options.ProcessingOrder = section.GetString("ProcessingOrder");
18+
});
19+
}

TaskHub.Shared.Bootstraper/TaskHub.Shared.Bootstraper.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<ProjectReference Include="..\TaskHub.Shared.ConfigurationTools\TaskHub.Shared.ConfigurationTools.csproj" />
1212
<ProjectReference Include="..\TaskHub.Shared.Infrastructure.EfCore\TaskHub.Shared.Infrastructure.EfCore.csproj" />
1313
<ProjectReference Include="..\TaskHub.Shared.OpenTelemetry\TaskHub.Shared.OpenTelemetry.csproj" />
14+
<ProjectReference Include="..\TaskHub.Shared.RateLimiter\TaskHub.Shared.RateLimiter.csproj" />
1415
<ProjectReference Include="..\TaskHub.Shared.Redis\TaskHub.Shared.Redis.csproj" />
1516
<ProjectReference Include="..\TaskHub.Shared.Response\TaskHub.Shared.Response.csproj" />
1617
<ProjectReference Include="..\TaskHub.Shared.Swagger\TaskHub.Shared.Swagger.csproj" />

TaskHub.Shared.RateLimiter/FixedLimiterOptions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public class FixedLimiterOptions
1010
public int PermitLimit { get; set; } = 0;
1111
public int QueueLimit { get; set; } = 0;
1212
public int Window { get; set; } = 0;
13-
public int ProcessingOrder { get; set; } = 0;
13+
public string ProcessingOrder { get; set; } = string.Empty;
1414

1515
public QueueProcessingOrder QueueProcessingOrder => ProcessingOrder switch
1616
{
17-
0 => QueueProcessingOrder.OldestFirst,
18-
1 => QueueProcessingOrder.NewestFirst,
17+
"OldestFirst" => QueueProcessingOrder.OldestFirst,
18+
"NewestFirst" => QueueProcessingOrder.NewestFirst,
1919
_ => QueueProcessingOrder.OldestFirst
2020
};
2121
}

0 commit comments

Comments
 (0)