diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Consumer.csproj b/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Consumer.csproj index fe32267411..b247ffd383 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Consumer.csproj +++ b/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Consumer.csproj @@ -2,14 +2,15 @@ Exe - net6.0 + net10.0 enable enable - - + + + diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Program.cs b/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Program.cs index 30f20a4a9f..afe0a6635e 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Program.cs +++ b/aspnetcore-webapi/MassTransitRabbitMQ/Consumer/Program.cs @@ -1,36 +1,30 @@ -using MassTransit; -using Newtonsoft.Json; +using MassTransit; +using Microsoft.Extensions.Hosting; using SharedModels; +using System.Text.Json; -var busControl = Bus.Factory.CreateUsingRabbitMq(cfg => +var builder = Host.CreateApplicationBuilder(args); + +builder.Services.AddMassTransit(x => { - cfg.ReceiveEndpoint("order-created-event", e => + x.AddConsumer() + .Endpoint(e => e.Name = "order-created-event"); + + x.UsingRabbitMq((context, cfg) => { - e.Consumer(); + cfg.ConfigureEndpoints(context); }); - }); -await busControl.StartAsync(new CancellationToken()); - -try -{ - Console.WriteLine("Press enter to exit"); - - await Task.Run(() => Console.ReadLine()); -} -finally -{ - await busControl.StopAsync(); -} +await builder.Build().RunAsync(); class OrderCreatedConsumer : IConsumer { - public async Task Consume(ConsumeContext context) + public Task Consume(ConsumeContext context) { - var jsonMessage = JsonConvert.SerializeObject(context.Message); + var jsonMessage = JsonSerializer.Serialize(context.Message); Console.WriteLine($"OrderCreated message: {jsonMessage}"); + + return Task.CompletedTask; } } - - diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Producer.csproj b/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Producer.csproj index 02e65cc133..50de051b98 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Producer.csproj +++ b/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Producer.csproj @@ -1,15 +1,14 @@ - net6.0 + net10.0 enable enable - - - + + diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Program.cs b/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Program.cs index 2a9c93c33b..f85470794a 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Program.cs +++ b/aspnetcore-webapi/MassTransitRabbitMQ/Producer/Program.cs @@ -8,8 +8,6 @@ x.UsingRabbitMq(); }); -builder.Services.AddMassTransitHostedService(); - builder.Services.AddControllers(); var app = builder.Build(); diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/OrderCreated.cs b/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/OrderCreated.cs index 8ed828df2f..a054612aa1 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/OrderCreated.cs +++ b/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/OrderCreated.cs @@ -1,13 +1,13 @@ -namespace SharedModels +namespace SharedModels { public interface OrderCreated { - int Id { get; set; } + int Id { get; } - string ProductName { get; set; } + string ProductName { get; } - decimal Price { get; set; } + decimal Price { get; } - int Quantity { get; set; } + int Quantity { get; } } } \ No newline at end of file diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/SharedModels.csproj b/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/SharedModels.csproj index 132c02c59c..9ed914b5ba 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/SharedModels.csproj +++ b/aspnetcore-webapi/MassTransitRabbitMQ/SharedModels/SharedModels.csproj @@ -1,7 +1,7 @@ - net6.0 + net10.0 enable enable diff --git a/aspnetcore-webapi/MassTransitRabbitMQ/Tests/Tests.csproj b/aspnetcore-webapi/MassTransitRabbitMQ/Tests/Tests.csproj index a5f45fe907..f281d54db0 100644 --- a/aspnetcore-webapi/MassTransitRabbitMQ/Tests/Tests.csproj +++ b/aspnetcore-webapi/MassTransitRabbitMQ/Tests/Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net10.0 enable false