-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathUsage.cs
More file actions
133 lines (104 loc) · 3.37 KB
/
Usage.cs
File metadata and controls
133 lines (104 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// ReSharper disable UnusedVariable
// ReSharper disable RedundantArgumentDefaultValue
public class Usage
{
string connectionString = null!;
Usage(EndpointConfiguration configuration)
{
#region SqlEnableAttachments
configuration.EnableAttachments(
connectionFactory: async cancel =>
{
var connection = new SqlConnection(connectionString);
try
{
await connection.OpenAsync(cancel).ConfigureAwait(false);
return connection;
}
catch
{
await connection.DisposeAsync();
throw;
}
},
timeToKeep: _ => TimeSpan.FromDays(7));
#endregion
#region SqlEnableAttachmentsRecommended
configuration.EnableAttachments(
connectionFactory: OpenConnection,
timeToKeep: TimeToKeep.Default);
#endregion
}
void DisableCleanupTask(EndpointConfiguration configuration)
{
#region SqlDisableCleanupTask
var attachments = configuration.EnableAttachments(
connectionFactory: OpenConnection,
timeToKeep: TimeToKeep.Default);
attachments.DisableCleanupTask();
#endregion
}
void UseTransportConnectivity(EndpointConfiguration configuration)
{
#region UseTransportConnectivity
var attachments = configuration.EnableAttachments(
OpenConnection,
TimeToKeep.Default);
attachments.UseTransportConnectivity();
#endregion
}
void UseSynchronizedStorageSessionConnectivity(EndpointConfiguration configuration)
{
#region UseSynchronizedStorageSessionConnectivity
var attachments = configuration.EnableAttachments(
OpenConnection,
TimeToKeep.Default);
attachments.UseSynchronizedStorageSessionConnectivity();
#endregion
}
void ExecuteAtStartup(EndpointConfiguration configuration)
{
#region ExecuteAtStartup
configuration.EnableInstallers();
var attachments = configuration.EnableAttachments(
connectionFactory: OpenConnection,
timeToKeep: TimeToKeep.Default);
#endregion
}
void DisableInstaller(EndpointConfiguration configuration)
{
#region DisableInstaller
configuration.EnableInstallers();
var attachments = configuration.EnableAttachments(
connectionFactory: OpenConnection,
timeToKeep: TimeToKeep.Default);
attachments.DisableInstaller();
#endregion
}
void UseTableName(EndpointConfiguration configuration)
{
#region UseTableName
var attachments = configuration.EnableAttachments(
connectionFactory: OpenConnection,
timeToKeep: TimeToKeep.Default,
table: "CustomAttachmentsTableName");
#endregion
}
#region OpenConnection
async Task<SqlConnection> OpenConnection(Cancel cancel)
{
var connection = new SqlConnection(connectionString);
try
{
await connection.OpenAsync(cancel).ConfigureAwait(false);
return connection;
}
catch
{
await connection.DisposeAsync();
throw;
}
}
#endregion
}