Skip to content

Commit b82cadc

Browse files
committed
FEAT: Adding new message processing logic
1 parent 6ad2b34 commit b82cadc

14 files changed

Lines changed: 164 additions & 98 deletions

src/AzureServiceBusFlow.Configurations.WebTests/AzureServiceBusFlow.Configurations.WebTests.csproj

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.1" />
11-
<PackageReference Include="Mattioli.Configurations" Version="1.43.0" />
10+
<Compile Remove="Config\**" />
11+
<Content Remove="Config\**" />
12+
<EmbeddedResource Remove="Config\**" />
13+
<None Remove="Config\**" />
1214
</ItemGroup>
1315

1416
<ItemGroup>
15-
<Folder Include="Config\" />
17+
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.1" />
18+
<PackageReference Include="Mattioli.Configurations" Version="1.43.0" />
1619
</ItemGroup>
1720

1821
<ItemGroup>

src/AzureServiceBusFlow.Configurations.WebTests/Command/OutroHandlerQualquerCommandHandler.cs

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

src/AzureServiceBusFlow.Configurations.WebTests/Command/PedidoCriadoCommand.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,11 @@ public class PedidoCriadoCommand : IServiceBusMessage
1515
public required DateTime CommandCreatedDate { get; set; }
1616
public required PedidoCriado Category { get; set; }
1717
}
18+
19+
public class PedidoRecebidoCommand : IServiceBusMessage
20+
{
21+
public required string RoutingKey { get; set; }
22+
public required DateTime CommandCreatedDate { get; set; }
23+
public required string Name { get; set; }
24+
}
1825
}

src/AzureServiceBusFlow.Configurations.WebTests/Command/PedidoCriadoCommandHandler.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
using AzureServiceBusFlow.Abstractions;
1+
using Azure.Messaging.ServiceBus;
2+
3+
using AzureServiceBusFlow.Abstractions;
24

35
namespace AzureServiceBusFlow.Configurations.WebTests.Command
46
{
57
public class PedidoCriadoHandler : IMessageHandler<PedidoCriadoCommand>
68
{
7-
public Task HandleAsync(PedidoCriadoCommand message, CancellationToken cancellationToken)
9+
public Task HandleAsync(PedidoCriadoCommand message, ServiceBusReceivedMessage rawMessage)
810
{
911
Console.WriteLine($"[PedidoCriadoHandler] Pedido {1} para {"JAO"} no valor de {50}");
1012
return Task.CompletedTask;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using Azure.Messaging.ServiceBus;
2+
3+
using AzureServiceBusFlow.Abstractions;
4+
5+
namespace AzureServiceBusFlow.Configurations.WebTests.Command
6+
{
7+
public class PedidoRecebidoCommandHandler : IMessageHandler<PedidoRecebidoCommand>
8+
{
9+
public Task HandleAsync(PedidoRecebidoCommand message, ServiceBusReceivedMessage rawMessage)
10+
{
11+
Console.WriteLine($"[PedidoRecebidoCommandHandler] Pedido {1} para {"JAO"} no valor de {50}");
12+
return Task.CompletedTask;
13+
}
14+
}
15+
}

src/AzureServiceBusFlow.Configurations.WebTests/Controllers/PedidosController.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using AzureServiceBusFlow.Configurations.WebTests.Command;
22
using AzureServiceBusFlow.Producers.Abstractions;
3-
43
using Microsoft.AspNetCore.Mvc;
54

65
namespace AzureServiceBusFlow.Configurations.WebTests.Controllers
@@ -9,14 +8,33 @@ namespace AzureServiceBusFlow.Configurations.WebTests.Controllers
98
[ApiController]
109
public class PedidosController(ICommandProducer _producer) : ControllerBase
1110
{
12-
[HttpPost]
13-
public async Task<IActionResult> CriarPedido(PedidoCriado request, CancellationToken cancellationToken)
11+
[HttpPost("example1")]
12+
public async Task<IActionResult> CriarPedido(CancellationToken cancellationToken)
1413
{
1514
PedidoCriadoCommand command = new()
1615
{
17-
Category = request,
16+
Category = new PedidoCriado
17+
{
18+
Cliente = "jose",
19+
Id = Guid.NewGuid(),
20+
Valor = 1111
21+
},
22+
CommandCreatedDate = DateTime.UtcNow,
23+
RoutingKey = Guid.NewGuid().ToString()
24+
};
25+
26+
await _producer.ProduceCommandAsync(command, cancellationToken);
27+
return Ok();
28+
}
29+
30+
[HttpPost("example2")]
31+
public async Task<IActionResult> CriarPedido2(CancellationToken cancellationToken)
32+
{
33+
PedidoRecebidoCommand command = new()
34+
{
35+
Name = "Name",
1836
CommandCreatedDate = DateTime.UtcNow,
19-
RoutingKey = request.Id.ToString()
37+
RoutingKey = Guid.NewGuid().ToString()
2038
};
2139

2240
await _producer.ProduceCommandAsync(command, cancellationToken);

src/AzureServiceBusFlow.Configurations.WebTests/Program.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
using AzureServiceBusFlow.Abstractions;
22
using AzureServiceBusFlow.Configurations.WebTests.Command;
33
using AzureServiceBusFlow.Extensions;
4-
54
using Mattioli.Configurations.Transformers;
6-
75
using Scalar.AspNetCore;
86

97
var builder = WebApplication.CreateBuilder(args);
@@ -19,11 +17,11 @@
1917
.WithCommandProducer()
2018
.ToQueue("queue-one")
2119
.ToTopic("meu-topico"))
22-
.AddConsumer<PedidoCriadoCommand>(c => c
20+
.AddConsumer(c => c
2321
.FromQueue("queue-one")
2422
.FromTopic("meu-topico", "minha-subscription")
25-
.AddHandler<PedidoCriadoHandler>()
26-
.AddHandler<OutroHandlerQualquerCommandHandler>())
23+
.AddHandler<PedidoCriadoCommand, PedidoCriadoHandler>()
24+
.AddHandler<PedidoRecebidoCommand, PedidoRecebidoCommandHandler>())
2725
);
2826

2927
var app = builder.Build();

src/AzureServiceBusFlow.Configurations.WebTests/Properties/launchSettings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"commandName": "Project",
1414
"dotnetRunMessages": true,
1515
"launchBrowser": true,
16-
"launchUrl": "swagger",
16+
"launchUrl": "scalar",
1717
"applicationUrl": "http://localhost:5240",
1818
"environmentVariables": {
1919
"ASPNETCORE_ENVIRONMENT": "Development"
@@ -23,7 +23,7 @@
2323
"commandName": "Project",
2424
"dotnetRunMessages": true,
2525
"launchBrowser": true,
26-
"launchUrl": "swagger",
26+
"launchUrl": "scalar",
2727
"applicationUrl": "https://localhost:7003;http://localhost:5240",
2828
"environmentVariables": {
2929
"ASPNETCORE_ENVIRONMENT": "Development"
@@ -32,7 +32,7 @@
3232
"IIS Express": {
3333
"commandName": "IISExpress",
3434
"launchBrowser": true,
35-
"launchUrl": "swagger",
35+
"launchUrl": "scalar",
3636
"environmentVariables": {
3737
"ASPNETCORE_ENVIRONMENT": "Development"
3838
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
namespace AzureServiceBusFlow.Abstractions
1+
using Azure.Messaging.ServiceBus;
2+
3+
namespace AzureServiceBusFlow.Abstractions
24
{
35
public interface IMessageHandler<in T>
46
{
5-
Task HandleAsync(T message, CancellationToken cancellationToken = default);
7+
Task HandleAsync(T message, ServiceBusReceivedMessage rawMessage);
68
}
79
}

src/AzureServiceBusFlow/Builders/ServiceBusConfigurationBuilder.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,9 @@ public ServiceBusConfigurationBuilder AddProducer<TMessage>(
2626
return this;
2727
}
2828

29-
public ServiceBusConfigurationBuilder AddConsumer<TMessage>(
30-
Action<ServiceBusConsumerConfigurationBuilder<TMessage>> configure)
31-
where TMessage : class, IServiceBusMessage
29+
public ServiceBusConfigurationBuilder AddConsumer(Action<ServiceBusConsumerConfigurationBuilder> configure)
3230
{
33-
var builder = new ServiceBusConsumerConfigurationBuilder<TMessage>(ConnectionString, _services);
31+
var builder = new ServiceBusConsumerConfigurationBuilder(ConnectionString, _services);
3432
configure(builder);
3533
builder.Build();
3634
return this;

0 commit comments

Comments
 (0)