Skip to content

Commit 3c0ae32

Browse files
authored
Add NServiceBus 10 version of the Transactional session Azure table snippets (#7764)
* Add previously released versions * Add NServiceBus 10 version of the Transactional session Azure table snippets
1 parent 041b76e commit 3c0ae32

File tree

11 files changed

+303
-0
lines changed

11 files changed

+303
-0
lines changed

Snippets/TransactionalSession.AzureTable/AzureTableTS.sln

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureTableTS_3", "AzureTabl
66
EndProject
77
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureTableTS_4", "AzureTableTS_4\AzureTableTS_4.csproj", "{4673B6F5-E549-46FC-A47A-650FDDCC9E22}"
88
EndProject
9+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureTableTS_5", "AzureTableTS_5\AzureTableTS_5.csproj", "{A55A93D9-AD46-41FD-8321-8909E534C04E}"
10+
EndProject
11+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureTableTS_6", "AzureTableTS_6\AzureTableTS_6.csproj", "{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}"
12+
EndProject
13+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureTableTS_7", "AzureTableTS_7\AzureTableTS_7.csproj", "{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}"
14+
EndProject
915
Global
1016
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1117
Debug|Any CPU = Debug|Any CPU
@@ -40,6 +46,42 @@ Global
4046
{4673B6F5-E549-46FC-A47A-650FDDCC9E22}.Release|x64.Build.0 = Release|Any CPU
4147
{4673B6F5-E549-46FC-A47A-650FDDCC9E22}.Release|x86.ActiveCfg = Release|Any CPU
4248
{4673B6F5-E549-46FC-A47A-650FDDCC9E22}.Release|x86.Build.0 = Release|Any CPU
49+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|Any CPU.Build.0 = Debug|Any CPU
51+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|x64.ActiveCfg = Debug|Any CPU
52+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|x64.Build.0 = Debug|Any CPU
53+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|x86.ActiveCfg = Debug|Any CPU
54+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Debug|x86.Build.0 = Debug|Any CPU
55+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|Any CPU.ActiveCfg = Release|Any CPU
56+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|Any CPU.Build.0 = Release|Any CPU
57+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|x64.ActiveCfg = Release|Any CPU
58+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|x64.Build.0 = Release|Any CPU
59+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|x86.ActiveCfg = Release|Any CPU
60+
{A55A93D9-AD46-41FD-8321-8909E534C04E}.Release|x86.Build.0 = Release|Any CPU
61+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
62+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|Any CPU.Build.0 = Debug|Any CPU
63+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|x64.ActiveCfg = Debug|Any CPU
64+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|x64.Build.0 = Debug|Any CPU
65+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|x86.ActiveCfg = Debug|Any CPU
66+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Debug|x86.Build.0 = Debug|Any CPU
67+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|Any CPU.ActiveCfg = Release|Any CPU
68+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|Any CPU.Build.0 = Release|Any CPU
69+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|x64.ActiveCfg = Release|Any CPU
70+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|x64.Build.0 = Release|Any CPU
71+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|x86.ActiveCfg = Release|Any CPU
72+
{8F2D0AA2-6D7A-4415-ACAC-2A22AE53C098}.Release|x86.Build.0 = Release|Any CPU
73+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
74+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|Any CPU.Build.0 = Debug|Any CPU
75+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|x64.ActiveCfg = Debug|Any CPU
76+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|x64.Build.0 = Debug|Any CPU
77+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|x86.ActiveCfg = Debug|Any CPU
78+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Debug|x86.Build.0 = Debug|Any CPU
79+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|Any CPU.ActiveCfg = Release|Any CPU
80+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|Any CPU.Build.0 = Release|Any CPU
81+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|x64.ActiveCfg = Release|Any CPU
82+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|x64.Build.0 = Release|Any CPU
83+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|x86.ActiveCfg = Release|Any CPU
84+
{54E355EF-BCA9-4DCF-B209-A91C0D4A027A}.Release|x86.Build.0 = Release|Any CPU
4385
EndGlobalSection
4486
GlobalSection(SolutionProperties) = preSolution
4587
HideSolutionNode = FALSE
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using NServiceBus;
3+
using NServiceBus.TransactionalSession;
4+
using System;
5+
using System.Threading.Tasks;
6+
using NServiceBus.Persistence.AzureTable;
7+
8+
public class AzureStorageConfig
9+
{
10+
public void Configure(EndpointConfiguration config)
11+
{
12+
#region enabling-transactional-session-azurestorage
13+
14+
var persistence = config.UsePersistence<AzureTablePersistence>();
15+
persistence.EnableTransactionalSession();
16+
17+
#endregion
18+
}
19+
20+
private async Task OpenDefault(IServiceProvider serviceProvider)
21+
{
22+
#region open-transactional-session-azurestorage
23+
24+
using var childScope = serviceProvider.CreateScope();
25+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
26+
await session.Open(
27+
new AzureTableOpenSessionOptions(
28+
new TableEntityPartitionKey("MyPartitionKey")));
29+
30+
// use the session
31+
32+
await session.Commit();
33+
34+
#endregion
35+
}
36+
37+
public async Task OpenContainerInfo(IServiceProvider serviceProvider)
38+
{
39+
#region open-transactional-session-azurestorage-table
40+
41+
using var childScope = serviceProvider.CreateScope();
42+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
43+
await session.Open(
44+
new AzureTableOpenSessionOptions(
45+
new TableEntityPartitionKey("MyPartitionKey"),
46+
new TableInformation("MyTable")));
47+
48+
// use the session
49+
50+
await session.Commit();
51+
52+
#endregion
53+
}
54+
55+
public async Task UseSession(ITransactionalSession session)
56+
{
57+
#region use-transactional-session-azurestorage
58+
await session.Open(
59+
new AzureTableOpenSessionOptions(
60+
new TableEntityPartitionKey("MyPartitionKey")));
61+
62+
// add messages to the transaction:
63+
await session.Send(new MyMessage());
64+
65+
// access the database:
66+
var azureTableSession = session.SynchronizedStorageSession.AzureTablePersistenceSession();
67+
68+
await session.Commit();
69+
#endregion
70+
}
71+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net8.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="NServiceBus.Persistence.AzureTable.TransactionalSession" Version="5.*" />
9+
</ItemGroup>
10+
11+
</Project>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using NServiceBus;
2+
3+
public class MyMessage : ICommand
4+
{
5+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using NServiceBus;
3+
using NServiceBus.TransactionalSession;
4+
using System;
5+
using System.Threading.Tasks;
6+
using NServiceBus.Persistence.AzureTable;
7+
8+
public class AzureStorageConfig
9+
{
10+
public void Configure(EndpointConfiguration config)
11+
{
12+
#region enabling-transactional-session-azurestorage
13+
14+
var persistence = config.UsePersistence<AzureTablePersistence>();
15+
persistence.EnableTransactionalSession();
16+
17+
#endregion
18+
}
19+
20+
private async Task OpenDefault(IServiceProvider serviceProvider)
21+
{
22+
#region open-transactional-session-azurestorage
23+
24+
using var childScope = serviceProvider.CreateScope();
25+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
26+
await session.Open(
27+
new AzureTableOpenSessionOptions(
28+
new TableEntityPartitionKey("MyPartitionKey")));
29+
30+
// use the session
31+
32+
await session.Commit();
33+
34+
#endregion
35+
}
36+
37+
public async Task OpenContainerInfo(IServiceProvider serviceProvider)
38+
{
39+
#region open-transactional-session-azurestorage-table
40+
41+
using var childScope = serviceProvider.CreateScope();
42+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
43+
await session.Open(
44+
new AzureTableOpenSessionOptions(
45+
new TableEntityPartitionKey("MyPartitionKey"),
46+
new TableInformation("MyTable")));
47+
48+
// use the session
49+
50+
await session.Commit();
51+
52+
#endregion
53+
}
54+
55+
public async Task UseSession(ITransactionalSession session)
56+
{
57+
#region use-transactional-session-azurestorage
58+
await session.Open(
59+
new AzureTableOpenSessionOptions(
60+
new TableEntityPartitionKey("MyPartitionKey")));
61+
62+
// add messages to the transaction:
63+
await session.Send(new MyMessage());
64+
65+
// access the database:
66+
var azureTableSession = session.SynchronizedStorageSession.AzureTablePersistenceSession();
67+
68+
await session.Commit();
69+
#endregion
70+
}
71+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net8.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="NServiceBus.Persistence.AzureTable.TransactionalSession" Version="6.*" />
9+
</ItemGroup>
10+
11+
</Project>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using NServiceBus;
2+
3+
public class MyMessage : ICommand
4+
{
5+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using NServiceBus;
3+
using NServiceBus.TransactionalSession;
4+
using System;
5+
using System.Threading.Tasks;
6+
using NServiceBus.Persistence.AzureTable;
7+
8+
public class AzureStorageConfig
9+
{
10+
public void Configure(EndpointConfiguration config)
11+
{
12+
#region enabling-transactional-session-azurestorage
13+
14+
var persistence = config.UsePersistence<AzureTablePersistence>();
15+
persistence.EnableTransactionalSession();
16+
17+
#endregion
18+
}
19+
20+
private async Task OpenDefault(IServiceProvider serviceProvider)
21+
{
22+
#region open-transactional-session-azurestorage
23+
24+
using var childScope = serviceProvider.CreateScope();
25+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
26+
await session.Open(
27+
new AzureTableOpenSessionOptions(
28+
new TableEntityPartitionKey("MyPartitionKey")));
29+
30+
// use the session
31+
32+
await session.Commit();
33+
34+
#endregion
35+
}
36+
37+
public async Task OpenContainerInfo(IServiceProvider serviceProvider)
38+
{
39+
#region open-transactional-session-azurestorage-table
40+
41+
using var childScope = serviceProvider.CreateScope();
42+
var session = childScope.ServiceProvider.GetService<ITransactionalSession>();
43+
await session.Open(
44+
new AzureTableOpenSessionOptions(
45+
new TableEntityPartitionKey("MyPartitionKey"),
46+
new TableInformation("MyTable")));
47+
48+
// use the session
49+
50+
await session.Commit();
51+
52+
#endregion
53+
}
54+
55+
public async Task UseSession(ITransactionalSession session)
56+
{
57+
#region use-transactional-session-azurestorage
58+
await session.Open(
59+
new AzureTableOpenSessionOptions(
60+
new TableEntityPartitionKey("MyPartitionKey")));
61+
62+
// add messages to the transaction:
63+
await session.Send(new MyMessage());
64+
65+
// access the database:
66+
var azureTableSession = session.SynchronizedStorageSession.AzureTablePersistenceSession();
67+
68+
await session.Commit();
69+
#endregion
70+
}
71+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net10.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="NServiceBus.Persistence.AzureTable.TransactionalSession" Version="7.0.0-alpha.1" />
9+
</ItemGroup>
10+
11+
</Project>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using NServiceBus;
2+
3+
public class MyMessage : ICommand
4+
{
5+
}

0 commit comments

Comments
 (0)