Skip to content

Commit 4b6bea1

Browse files
committed
Correção de erro na secret da Cliente.API
1 parent c8ad1f9 commit 4b6bea1

File tree

12 files changed

+119
-18
lines changed

12 files changed

+119
-18
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace JSE.Core.Messages.Integration
2+
{
3+
public class PedidoRealizadoIntegrationEvent : IntegrationEvent
4+
{
5+
public Guid ClienteId { get; private set; }
6+
7+
public PedidoRealizadoIntegrationEvent(Guid clienteId)
8+
{
9+
ClienteId = clienteId;
10+
}
11+
}
12+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using JSE.Carrinho.API.Services;
2+
using JSE.Core.Utils;
3+
using JSE.MessageBus;
4+
5+
namespace JSE.Carrinho.API.Configuration
6+
{
7+
public static class MessageBusConfig
8+
{
9+
public static void AddMessageBusConfiguration(this IServiceCollection services,
10+
IConfiguration configuration)
11+
{
12+
services.AddMessageBus(configuration.GetMessageQueueConnection("MessageBus"))
13+
.AddHostedService<CarrinhoIntegrationHandler>();
14+
}
15+
}
16+
}

src/services/JSE.Carrinho.API/Data/CarrinhoContext.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
5151
.WithOne(i => i.CarrinhoCliente)
5252
.HasForeignKey(c => c.CarrinhoId);
5353

54-
foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys())) relationship.DeleteBehavior = DeleteBehavior.ClientSetNull;
54+
foreach (var relationship in modelBuilder.Model.GetEntityTypes()
55+
.SelectMany(e => e.GetForeignKeys())) relationship.DeleteBehavior = DeleteBehavior.Cascade;
5556
}
5657
}
5758
}

src/services/JSE.Carrinho.API/JSE.Carrinho.API.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,16 @@
1818
</PackageReference>
1919
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.10" />
2020
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.10" />
21+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10">
22+
<PrivateAssets>all</PrivateAssets>
23+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
24+
</PackageReference>
2125
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.0" />
2226
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
2327
</ItemGroup>
2428

2529
<ItemGroup>
30+
<ProjectReference Include="..\..\building blocks\JSE.MessageBus\JSE.MessageBus.csproj" />
2631
<ProjectReference Include="..\..\building blocks\JSE.WebAPI.Core\JSE.WebAPI.Core.csproj" />
2732
</ItemGroup>
2833

src/services/JSE.Carrinho.API/Program.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
builder.Services.AddJwtConfiguration(configuration);
1717
builder.Services.AddSwaggerConfiguration();
1818
builder.Services.RegisterServices();
19+
builder.Services.AddMessageBusConfiguration(configuration);
20+
1921

2022
var app = builder.Build();
2123
var environment = app.Environment;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using JSE.Carrinho.API.Data;
2+
using JSE.Core.Messages.Integration;
3+
using JSE.MessageBus;
4+
using Microsoft.EntityFrameworkCore;
5+
6+
namespace JSE.Carrinho.API.Services
7+
{
8+
public class CarrinhoIntegrationHandler : BackgroundService
9+
{
10+
private readonly IMessageBus _bus;
11+
private readonly IServiceProvider _serviceProvider;
12+
13+
public CarrinhoIntegrationHandler(IMessageBus bus, IServiceProvider serviceProvider)
14+
{
15+
_serviceProvider = serviceProvider;
16+
_bus = bus;
17+
}
18+
19+
protected override Task ExecuteAsync(CancellationToken stoppingToken)
20+
{
21+
SetSubscribers();
22+
return Task.CompletedTask;
23+
}
24+
25+
private void SetSubscribers()
26+
{
27+
_bus.SubscribeAsync<PedidoRealizadoIntegrationEvent>("PedidoRealizado", async request =>
28+
await ApagarCarrinho(request));
29+
}
30+
31+
private async Task ApagarCarrinho(PedidoRealizadoIntegrationEvent message)
32+
{
33+
using var scope = _serviceProvider.CreateScope();
34+
var context = scope.ServiceProvider.GetRequiredService<CarrinhoContext>();
35+
36+
var carrinho = await context.CarrinhoCliente.FirstOrDefaultAsync(c => c.ClienteId == message.ClienteId);
37+
38+
if (carrinho != null)
39+
{
40+
context.CarrinhoCliente.Remove(carrinho);
41+
await context.SaveChangesAsync();
42+
}
43+
}
44+
45+
}
46+
}

src/services/JSE.Carrinho.API/appsettings.Development.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22
"ConnectionStrings": {
33
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=JeffStoreEnterprise;User Id=sa;Password=Asd123!!;Trusted_Connection=true;MultipleActiveResultSets=true;TrustServerCertificate=True;"
44
},
5+
6+
"MessageQueueConnection": {
7+
"MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10"
8+
},
9+
510
"Logging": {
611
"LogLevel": {
712
"Default": "Information",
813
"Microsoft.AspNetCore": "Warning"
914
}
1015
},
16+
1117
"AppSettings": {
1218
"Secret": "F9F52344-59C3-4EAC-90E6-CB47935038BE",
1319
"ExpirationHours": 2,

src/services/JSE.Client.API/appsettings.Development.json

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,19 @@
22
"ConnectionStrings": {
33
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=JeffStoreEnterprise;User Id=sa;Password=Asd123!!;Trusted_Connection=true;MultipleActiveResultSets=true;TrustServerCertificate=True;"
44
},
5-
65
"MessageQueueConnection": {
76
"MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10"
87
},
9-
108
"Logging": {
119
"LogLevel": {
1210
"Default": "Information",
1311
"Microsoft.AspNetCore": "Warning"
14-
},
15-
16-
"AppSettings": {
17-
"Secret": "F9F52344-59C3-4EAC-90E6-CB47935038BE",
18-
"ExpirationHours": 2,
19-
"Issuer": "MeuSistema",
20-
"ValidOn": "https://localhost"
2112
}
22-
13+
},
14+
"AppSettings": {
15+
"Secret": "F9F52344-59C3-4EAC-90E6-CB47935038BE",
16+
"ExpirationHours": 2,
17+
"Issuer": "MeuSistema",
18+
"ValidOn": "https://localhost"
2319
}
24-
}
20+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using JSE.Core.Messages.Integration;
2+
using JSE.MessageBus;
3+
using MediatR;
4+
5+
namespace JSE.Pedido_API.Application.Events
6+
{
7+
public class PedidoEventHandler : INotificationHandler<PedidoRealizadoEvent>
8+
{
9+
private readonly IMessageBus _bus;
10+
11+
public PedidoEventHandler(IMessageBus bus)
12+
{
13+
_bus = bus;
14+
}
15+
16+
public async Task Handle(PedidoRealizadoEvent message, CancellationToken cancellationToken)
17+
{
18+
await _bus.PublishAsync(new PedidoRealizadoIntegrationEvent(message.ClienteId));
19+
}
20+
}
21+
}

src/services/JSE.Pedido.API/Configuration/MessageBusConfig.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using JSE.Core.Utils;
22
using JSE.MessageBus;
33

4-
namespace NSE.Pedidos.API.Configuration
4+
namespace JSE.Pedidos.API.Configuration
55
{
66
public static class MessageBusConfig
77
{

0 commit comments

Comments
 (0)