Skip to content

Commit 18144d7

Browse files
authored
added last changes for azure and aws (#7063)
Added NServiceBus.Extensions.Hosting for Aws and Azure samples
1 parent 35b05d7 commit 18144d7

File tree

92 files changed

+795
-582
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+795
-582
lines changed

samples/aws/dynamodb-simple/DynamoDB_2/Client/Client.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<OutputType>Exe</OutputType>
55
<LangVersion>12.0</LangVersion>
66
</PropertyGroup>
7+
<ItemGroup>
8+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.0.1" />
9+
</ItemGroup>
710
<ItemGroup>
811
<ProjectReference Include="..\SharedMessages\SharedMessages.csproj" />
912
</ItemGroup>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+

2+
using System;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using Microsoft.Extensions.Hosting;
6+
using NServiceBus;
7+
public class InputLoopService(IMessageSession messageSession) : BackgroundService
8+
{
9+
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
10+
{
11+
12+
Console.WriteLine("Press 'S' to send a StartOrder message to the server endpoint");
13+
14+
Console.WriteLine("Press any other key to exit");
15+
16+
while (true)
17+
{
18+
var key = Console.ReadKey();
19+
Console.WriteLine();
20+
21+
var orderId = Guid.NewGuid();
22+
var startOrder = new StartOrder
23+
{
24+
OrderId = orderId
25+
};
26+
if (key.Key == ConsoleKey.S)
27+
{
28+
await messageSession.Send("Samples.DynamoDB.Simple.Server", startOrder);
29+
Console.WriteLine($"StartOrder Message sent to Server with OrderId {orderId}");
30+
continue;
31+
}
32+
break;
33+
}
34+
35+
}
36+
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
using System.Threading.Tasks;
2+
using Microsoft.Extensions.Logging;
23
using NServiceBus;
3-
using NServiceBus.Logging;
44

5-
public class OrderCompletedHandler :
5+
public class OrderCompletedHandler(ILogger<OrderCompletedHandler> logger) :
66
IHandleMessages<OrderCompleted>
77
{
8-
static ILog log = LogManager.GetLogger<OrderCompletedHandler>();
9-
8+
109
public Task Handle(OrderCompleted message, IMessageHandlerContext context)
1110
{
12-
log.Info($"Received OrderCompleted for OrderId {message.OrderId}");
11+
12+
logger.LogInformation($"Received OrderCompleted for OrderId {message.OrderId}");
1313
return Task.CompletedTask;
1414
}
1515
}
Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,23 @@
11
using System;
2-
using System.Threading.Tasks;
3-
2+
using Microsoft.Extensions.DependencyInjection;
3+
using Microsoft.Extensions.Hosting;
44
using NServiceBus;
55

6-
class Program
7-
{
8-
static async Task Main()
9-
{
10-
Console.Title = "Client";
11-
var endpointConfiguration = new EndpointConfiguration("Samples.DynamoDB.Simple.Client");
12-
endpointConfiguration.UseTransport<LearningTransport>();
13-
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
14-
15-
var endpointInstance = await Endpoint.Start(endpointConfiguration);
16-
17-
Console.WriteLine("Press 'S' to send a StartOrder message to the server endpoint");
18-
19-
Console.WriteLine("Press any other key to exit");
20-
21-
while (true)
22-
{
23-
var key = Console.ReadKey();
24-
Console.WriteLine();
25-
26-
var orderId = Guid.NewGuid();
27-
var startOrder = new StartOrder
28-
{
29-
OrderId = orderId
30-
};
31-
if (key.Key == ConsoleKey.S)
32-
{
33-
await endpointInstance.Send("Samples.DynamoDB.Simple.Server", startOrder);
34-
Console.WriteLine($"StartOrder Message sent to Server with OrderId {orderId}");
35-
continue;
36-
}
37-
break;
38-
}
39-
40-
await endpointInstance.Stop();
41-
}
42-
}
6+
7+
Console.Title = "Client";
8+
9+
var builder = Host.CreateApplicationBuilder(args);
10+
builder.Services.AddHostedService<InputLoopService>();
11+
12+
var endpointConfiguration = new EndpointConfiguration("Samples.DynamoDB.Simple.Client");
13+
endpointConfiguration.UseTransport<LearningTransport>();
14+
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
15+
16+
17+
18+
Console.WriteLine("Press any key, the application is starting");
19+
Console.ReadKey();
20+
Console.WriteLine("Starting...");
21+
22+
builder.UseNServiceBus(endpointConfiguration);
23+
await builder.Build().RunAsync();

samples/aws/dynamodb-simple/DynamoDB_2/Server/OrderSaga.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
using System;
22
using System.Threading.Tasks;
3+
using Microsoft.Extensions.Logging;
34
using NServiceBus;
4-
using NServiceBus.Logging;
55

66
#region thesaga
77

8-
public class OrderSaga :
8+
public class OrderSaga(ILogger<OrderSagaData> logger) :
99
Saga<OrderSagaData>,
1010
IAmStartedByMessages<StartOrder>,
1111
IHandleTimeouts<CompleteOrder>
1212
{
13-
static ILog log = LogManager.GetLogger<OrderSaga>();
14-
15-
protected override void ConfigureHowToFindSaga(SagaPropertyMapper<OrderSagaData> mapper)
13+
protected override void ConfigureHowToFindSaga(SagaPropertyMapper<OrderSagaData> mapper)
1614
{
1715
mapper.MapSaga(saga => saga.OrderId).ToMessage<StartOrder>(msg => msg.OrderId);
1816
}
@@ -21,14 +19,15 @@ public Task Handle(StartOrder message, IMessageHandlerContext context)
2119
{
2220
var orderDescription = $"The saga for order {message.OrderId}";
2321
Data.OrderDescription = orderDescription;
24-
log.Info($"Received StartOrder message {Data.OrderId}. Starting Saga");
22+
23+
logger.LogInformation($"Received StartOrder message {Data.OrderId}. Starting Saga");
2524

2625
var shipOrder = new ShipOrder
2726
{
2827
OrderId = message.OrderId
2928
};
3029

31-
log.Info("Order will complete in 5 seconds");
30+
logger.LogInformation("Order will complete in 5 seconds");
3231
var timeoutData = new CompleteOrder
3332
{
3433
OrderDescription = orderDescription,
@@ -42,7 +41,7 @@ public Task Handle(StartOrder message, IMessageHandlerContext context)
4241

4342
public Task Timeout(CompleteOrder state, IMessageHandlerContext context)
4443
{
45-
log.Info($"Saga with OrderId {Data.OrderId} completed");
44+
logger.LogInformation($"Saga with OrderId {Data.OrderId} completed");
4645
MarkAsComplete();
4746
var orderCompleted = new OrderCompleted
4847
{

samples/aws/dynamodb-simple/DynamoDB_2/Server/Program.cs

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,42 @@
33

44
using Amazon.DynamoDBv2;
55
using Amazon.Runtime;
6-
6+
using Microsoft.Extensions.Hosting;
77
using NServiceBus;
88
using NServiceBus.Persistence.DynamoDB;
99

10-
class Program
11-
{
12-
static async Task Main()
13-
{
14-
Console.Title = "Server";
10+
Console.Title = "Server";
1511

16-
#region DynamoDBConfig
12+
var builder = Host.CreateApplicationBuilder(args);
13+
#region DynamoDBConfig
1714

18-
var amazonDynamoDbClient = new AmazonDynamoDBClient(
19-
new BasicAWSCredentials("localdb", "localdb"),
20-
new AmazonDynamoDBConfig
21-
{
22-
ServiceURL = "http://localhost:8000"
23-
});
15+
var amazonDynamoDbClient = new AmazonDynamoDBClient(
16+
new BasicAWSCredentials("localdb", "localdb"),
17+
new AmazonDynamoDBConfig
18+
{
19+
ServiceURL = "http://localhost:8000"
20+
});
2421

25-
var endpointConfiguration = new EndpointConfiguration("Samples.DynamoDB.Simple.Server");
22+
var endpointConfiguration = new EndpointConfiguration("Samples.DynamoDB.Simple.Server");
2623

27-
var persistence = endpointConfiguration.UsePersistence<DynamoPersistence>();
28-
persistence.DynamoClient(amazonDynamoDbClient);
29-
persistence.UseSharedTable(new TableConfiguration
30-
{
31-
TableName = "Samples.DynamoDB.Simple"
32-
});
24+
var persistence = endpointConfiguration.UsePersistence<DynamoPersistence>();
25+
persistence.DynamoClient(amazonDynamoDbClient);
26+
persistence.UseSharedTable(new TableConfiguration
27+
{
28+
TableName = "Samples.DynamoDB.Simple"
29+
});
3330

34-
#endregion
31+
#endregion
3532

36-
endpointConfiguration.UseTransport<LearningTransport>();
37-
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
33+
endpointConfiguration.UseTransport<LearningTransport>();
34+
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
3835

39-
endpointConfiguration.EnableInstallers();
36+
endpointConfiguration.EnableInstallers();
4037

41-
var endpointInstance = await Endpoint.Start(endpointConfiguration);
4238

43-
Console.WriteLine("Press any key to exit");
44-
Console.ReadKey();
39+
Console.WriteLine("Press any key, the application is starting");
40+
Console.ReadKey();
41+
Console.WriteLine("Starting...");
4542

46-
await endpointInstance.Stop();
47-
}
48-
}
43+
builder.UseNServiceBus(endpointConfiguration);
44+
await builder.Build().RunAsync();

samples/aws/dynamodb-simple/DynamoDB_2/Server/Server.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<LangVersion>12.0</LangVersion>
66
</PropertyGroup>
77
<ItemGroup>
8+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.0.1" />
89
<PackageReference Include="NServiceBus.Persistence.DynamoDB" Version="2.*" />
910
</ItemGroup>
1011
<ItemGroup>
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
using System.Threading.Tasks;
2+
using Microsoft.Extensions.Logging;
23
using NServiceBus;
3-
using NServiceBus.Logging;
4-
5-
public class ShipOrderHandler :
4+
public class ShipOrderHandler(ILogger<ShipOrderHandler> logger) :
65
IHandleMessages<ShipOrder>
76
{
8-
static ILog log = LogManager.GetLogger<ShipOrderHandler>();
97

108
public Task Handle(ShipOrder message, IMessageHandlerContext context)
119
{
12-
log.Info($"Order Shipped. OrderId {message.OrderId}");
10+
logger.LogInformation($"Order Shipped. OrderId {message.OrderId}");
1311
return Task.CompletedTask;
1412
}
1513
}

samples/aws/dynamodb-transactions/DynamoDB_2/Client/Client.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
</ItemGroup>
1010
<ItemGroup>
1111
<PackageReference Include="NServiceBus" Version="9.*" />
12+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.0.1" />
1213
</ItemGroup>
1314
</Project>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+

2+
using System;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using Microsoft.Extensions.Hosting;
6+
using NServiceBus;
7+
public class InputLoopService(IMessageSession messageSession) : BackgroundService
8+
{
9+
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
10+
{
11+
Console.WriteLine("Press 'S' to send a StartOrder message to the server endpoint");
12+
Console.WriteLine("Press any other key to exit");
13+
14+
while (true)
15+
{
16+
var key = Console.ReadKey();
17+
Console.WriteLine();
18+
19+
var orderId = Guid.NewGuid();
20+
var startOrder = new StartOrder
21+
{
22+
OrderId = orderId
23+
};
24+
if (key.Key == ConsoleKey.S)
25+
{
26+
await messageSession.Send("Samples.DynamoDB.Transactions.Server", startOrder);
27+
Console.WriteLine($"StartOrder Message sent to Server with OrderId {orderId}");
28+
continue;
29+
}
30+
break;
31+
}
32+
33+
34+
}
35+
}

0 commit comments

Comments
 (0)