Skip to content

Commit 22c8720

Browse files
committed
Test PublishDelayAsync
1 parent fe0e17d commit 22c8720

17 files changed

Lines changed: 301 additions & 238 deletions

src/.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,9 @@ dotnet_diagnostic.S2292.severity = none
805805
# S2292: Trivial properties should be auto-implemented
806806
dotnet_diagnostic.S2325.severity = none
807807

808+
# S2629: Logging templates should be constant
809+
dotnet_diagnostic.S2629.severity = none
810+
808811
# S2933: Fields that are only assigned in the constructor should be "readonly"
809812
dotnet_diagnostic.S2933.severity = none
810813

src/plugins/CAP/CapTest.Depot.Host/CapTest.Depot.Host.csproj

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="6.2.1" />
9-
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="6.2.1" />
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.29">
8+
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.3.3" />
9+
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.3" />
10+
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.3" />
11+
<PackageReference Include="DotNetCore.CAP.RedisStreams" Version="8.3.3" />
12+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.4">
1113
<PrivateAssets>all</PrivateAssets>
1214
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1315
</PackageReference>
14-
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.22" />
15-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
16+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
17+
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />
1618
</ItemGroup>
1719

1820
<ItemGroup>
Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,21 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Threading.Tasks;
5-
using Microsoft.AspNetCore.Mvc;
6-
using Microsoft.Extensions.Logging;
1+
using Microsoft.AspNetCore.Mvc;
72

8-
namespace CapTest.Depot.Host.Controllers
9-
{
10-
[ApiController]
11-
[Route("[controller]")]
12-
public class WeatherForecastController : ControllerBase
13-
{
14-
private static readonly string[] Summaries = new[]
15-
{
16-
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
17-
};
3+
namespace CapTest.Depot.Host.Controllers;
184

19-
private readonly ILogger<WeatherForecastController> _logger;
5+
[ApiController]
6+
[Route("[controller]")]
7+
public class WeatherForecastController : ControllerBase
8+
{
209

21-
public WeatherForecastController(ILogger<WeatherForecastController> logger)
22-
{
23-
_logger = logger;
24-
}
10+
#region Methods
2511

26-
[HttpGet]
27-
public IEnumerable<WeatherForecast> Get()
28-
{
29-
var rng = new Random();
30-
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
31-
{
32-
Date = DateTime.Now.AddDays(index),
33-
TemperatureC = rng.Next(-20, 55),
34-
Summary = Summaries[rng.Next(Summaries.Length)]
35-
})
36-
.ToArray();
37-
}
12+
[HttpGet]
13+
[ProducesResponseType(typeof(string), 200)]
14+
public IActionResult Get()
15+
{
16+
return Ok("hello");
3817
}
18+
19+
#endregion
20+
3921
}

src/plugins/CAP/CapTest.Depot.Host/Startup.cs

Lines changed: 57 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,70 +3,81 @@
33
using Microsoft.EntityFrameworkCore;
44
using Microsoft.OpenApi.Models;
55

6-
namespace CapTest.Depot.Host
6+
namespace CapTest.Depot.Host;
7+
8+
public class Startup
79
{
8-
public class Startup
10+
public Startup(IConfiguration configuration)
11+
{
12+
Configuration = configuration;
13+
}
14+
15+
#region Properties
16+
17+
public IConfiguration Configuration { get; }
18+
19+
#endregion
20+
21+
#region Methods
22+
23+
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
24+
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
925
{
10-
public Startup(IConfiguration configuration)
26+
if (env.IsDevelopment())
1127
{
12-
Configuration = configuration;
28+
_ = app.UseDeveloperExceptionPage();
29+
_ = app.UseSwagger();
30+
_ = app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "CapTest.Depot.Host v1"));
1331
}
1432

15-
public IConfiguration Configuration { get; }
33+
_ = app.UseHttpsRedirection();
1634

17-
// This method gets called by the runtime. Use this method to add services to the container.
18-
public void ConfigureServices(IServiceCollection services)
19-
{
20-
services.AddTransient<OrderCreatedEventHandler>();
35+
_ = app.UseRouting();
2136

22-
services.AddControllers();
23-
services.AddSwaggerGen(c =>
37+
_ = app.UseAuthorization();
38+
39+
_ = app.UseEndpoints(
40+
endpoints =>
2441
{
25-
c.SwaggerDoc("v1", new OpenApiInfo { Title = "CapTest.Depot.Host", Version = "v1" });
42+
_ = endpoints.MapControllers();
2643
});
44+
}
2745

28-
services.AddDbContextPool<DepotDbContext>(builder =>
29-
builder.UseNpgsql(Configuration.GetConnectionString(DepotConsts.DbContextConnName)));
46+
// This method gets called by the runtime. Use this method to add services to the container.
47+
public void ConfigureServices(IServiceCollection services)
48+
{
49+
_ = services.AddTransient<OrderCreatedEventHandler>();
3050

31-
services.AddCap(options =>
51+
_ = services.AddControllers();
52+
_ = services.AddSwaggerGen(
53+
c =>
3254
{
33-
options.TopicNamePrefix = "test";
34-
35-
options.UseEntityFramework<DepotDbContext>(efOptions => efOptions.Schema = "cap");
36-
37-
options.UseRabbitMQ(mqOptions =>
38-
{
39-
mqOptions.HostName = "localhost";
40-
//mqOptions.Port = ;
41-
//mqOptions.UserName = "";
42-
//mqOptions.Password = "";
43-
});
44-
45-
options.UseDashboard(dashboardOptions => dashboardOptions.PathMatch = "/cap");
46-
//options.UseDiscovery(discoveryOptions => { });
55+
c.SwaggerDoc("v1", new OpenApiInfo { Title = "CapTest.Depot.Host", Version = "v1" });
4756
});
48-
}
4957

50-
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
51-
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
52-
{
53-
if (env.IsDevelopment())
54-
{
55-
app.UseDeveloperExceptionPage();
56-
app.UseSwagger();
57-
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "CapTest.Depot.Host v1"));
58-
}
58+
_ = services.AddDbContextPool<DepotDbContext>(
59+
builder => builder.UseNpgsql(Configuration.GetConnectionString(DepotConsts.DbContextConnName)));
5960

60-
app.UseHttpsRedirection();
61+
_ = services.AddCap(
62+
options =>
63+
{
64+
options.TopicNamePrefix = "test";
6165

62-
app.UseRouting();
66+
_ = options.UseEntityFramework<DepotDbContext>(efOptions => efOptions.Schema = "cap");
6367

64-
app.UseAuthorization();
68+
_ = options.UseRabbitMQ(
69+
mqOptions =>
70+
{
71+
mqOptions.HostName = "localhost";
72+
//mqOptions.Port = ;
73+
//mqOptions.UserName = "";
74+
//mqOptions.Password = "";
75+
});
6576

66-
app.UseEndpoints(endpoints =>
67-
{
68-
endpoints.MapControllers();
77+
_ = options.UseDashboard(dashboardOptions => dashboardOptions.PathMatch = "/cap");
6978
});
70-
}
7179
}
80+
81+
#endregion
82+
7283
}

src/plugins/CAP/CapTest.Depot.Host/WeatherForecast.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/plugins/CAP/CapTest.Depot.Host/appsettings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
}
88
},
99
"ConnectionStrings": {
10-
"Default": "Host=localhost;Port=5432;Database=Depot;Username=postgres;Password=123456;"
10+
"Default": "Host=localhost;Port=5432;Database=Depot;Username=postgres;Password=123456;",
11+
"Redis": "localhost:6379,DefaultDatabase=8"
1112
},
1213
"AllowedHosts": "*"
1314
}

src/plugins/CAP/CapTest.Depot.Service/CapTest.Depot.Service.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="DotNetCore.CAP" Version="6.2.1" />
9-
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="6.2.1" />
8+
<PackageReference Include="DotNetCore.CAP" Version="8.3.3" />
9+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
1010
</ItemGroup>
1111

1212
<ItemGroup>

src/plugins/CAP/CapTest.Depot.Service/OrderCreatedEventHandler.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,25 @@
22
using DotNetCore.CAP;
33
using Microsoft.Extensions.Logging;
44

5-
namespace CapTest.Depot.Service
5+
namespace CapTest.Depot.Service;
6+
7+
public class OrderCreatedEventHandler : ICapSubscribe
68
{
7-
public class OrderCreatedEventHandler : ICapSubscribe
9+
private readonly ILogger<OrderCreatedEventHandler> _logger;
10+
11+
public OrderCreatedEventHandler(ILogger<OrderCreatedEventHandler> logger)
812
{
9-
private readonly ILogger<OrderCreatedEventHandler> _logger;
13+
_logger = logger;
14+
}
1015

11-
public OrderCreatedEventHandler(ILogger<OrderCreatedEventHandler> logger) => _logger = logger;
16+
#region Methods
1217

13-
[CapSubscribe(OrderCreatedEventData.Name, Group = OrderConsts.MessageGroupName)]
14-
public void Handler(OrderCreatedEventData data)
15-
{
16-
_logger.LogInformation($"event received: node2 {data.Number}");
17-
}
18+
[CapSubscribe(OrderCreatedEventData.Name, Group = OrderConsts.MessageGroupName)]
19+
public void Handler(OrderCreatedEventData data)
20+
{
21+
_logger.LogInformation("event received: node2 {Number}", data.Number);
1822
}
23+
24+
#endregion
25+
1926
}

src/plugins/CAP/CapTest.Order.Host/CapTest.Order.Host.csproj

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="6.2.1" />
9-
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="6.2.1" />
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.29">
8+
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.3.3" />
9+
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.3" />
10+
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.3" />
11+
<PackageReference Include="DotNetCore.CAP.RedisStreams" Version="8.3.3"/>
12+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.4">
1113
<PrivateAssets>all</PrivateAssets>
1214
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1315
</PackageReference>
14-
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.22" />
15-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
16+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
17+
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />
1618
</ItemGroup>
1719

1820
<ItemGroup>

src/plugins/CAP/CapTest.Order.Host/Controllers/OrderController.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ public Task<string> CreateAsync(int id)
2323
return _orderService.Create(id);
2424
}
2525

26+
[HttpPost]
27+
[Route("CreateDelay/{id}")]
28+
public Task<string> CreateDelayAsync(int id)
29+
{
30+
return _orderService.CreateDelay(id);
31+
}
32+
2633
[HttpPost]
2734
[Route("CreateMessageWithHeaders")]
2835
// ReSharper disable once InconsistentNaming

0 commit comments

Comments
 (0)