+25
-0
lines changedFilter options
+25
-0
lines changed Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ public static MvcNewtonsoftJsonOptions AddSignumJsonConverters(this MvcNewtonsof
52
52
53
53
public static MvcOptions AddSignumGlobalFilters(this MvcOptions options)
54
54
{
55
+
options.Filters.Add(new SignumInitializeFilterAttribute());
55
56
options.Filters.Add(new SignumExceptionFilterAttribute());
56
57
options.Filters.Add(new CleanThreadContextAndAssertFilter());
57
58
options.Filters.Add(new SignumEnableBufferingFilter());
Original file line number Diff line number Diff line change
@@ -154,4 +154,28 @@ public HttpError(Exception e, bool includeErrorDetails = true)
154
154
public string? StackTrace;
155
155
public HttpError? InnerException;
156
156
}
157
+
158
+
public class SignumInitializeFilterAttribute : IAsyncResourceFilter
159
+
{
160
+
public static Action InitializeDatabase = () => throw new InvalidOperationException("SignumInitializeFilterAttribute.InitializeDatabase should be set in Startup");
161
+
static object lockKey = new object();
162
+
public bool Initialized = false;
163
+
164
+
public Task OnResourceExecutionAsync(ResourceExecutingContext context, ResourceExecutionDelegate next)
165
+
{
166
+
if (!Initialized)
167
+
{
168
+
lock (lockKey)
169
+
{
170
+
if (!Initialized)
171
+
{
172
+
InitializeDatabase();
173
+
Initialized = true;
174
+
}
175
+
}
176
+
}
177
+
178
+
return next();
179
+
}
180
+
}
157
181
}
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4