Skip to content

Commit 7059438

Browse files
committed
Merge pull request #67 from csantero/webapi-client-in-filter
Pass same ExceptionlessClient to WebApi exception filter
2 parents 76f387e + 27f9373 commit 7059438

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Source/Platforms/WebApi/ExceptionlessHandleErrorAttribute.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,21 @@
88

99
namespace Exceptionless.WebApi {
1010
public class ExceptionlessHandleErrorAttribute : IExceptionFilter {
11+
private readonly ExceptionlessClient _client;
12+
1113
public bool HasWrappedFilter { get { return WrappedFilter != null; } }
1214

1315
public IExceptionFilter WrappedFilter { get; set; }
1416
public bool AllowMultiple { get { return HasWrappedFilter && WrappedFilter.AllowMultiple; } }
1517

18+
public ExceptionlessHandleErrorAttribute() : this(ExceptionlessClient.Default) {
19+
20+
}
21+
22+
public ExceptionlessHandleErrorAttribute(ExceptionlessClient client) {
23+
_client = client;
24+
}
25+
1626
public virtual void OnHttpException(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
1727
if (HasWrappedFilter)
1828
WrappedFilter.ExecuteExceptionFilterAsync(actionExecutedContext, cancellationToken);
@@ -22,7 +32,7 @@ public virtual void OnHttpException(HttpActionExecutedContext actionExecutedCont
2232
contextData.SetSubmissionMethod("ExceptionHttpFilter");
2333
contextData.Add("HttpActionContext", actionExecutedContext.ActionContext);
2434

25-
actionExecutedContext.Exception.ToExceptionless(contextData).Submit();
35+
actionExecutedContext.Exception.ToExceptionless(contextData, client: _client).Submit();
2636
}
2737

2838
public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {

Source/Platforms/WebApi/ExceptionlessWebApiExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void RegisterWebApi(this ExceptionlessClient client, HttpConfigura
2525
config.Services.Add(typeof(IExceptionLogger), new ExceptionlessExceptionLogger());
2626
#endif
2727

28-
ReplaceHttpErrorHandler(config);
28+
ReplaceHttpErrorHandler(config, client);
2929
}
3030

3131
/// <summary>
@@ -37,9 +37,9 @@ public static void UnregisterWebApi(this ExceptionlessClient client) {
3737
client.Configuration.RemovePlugin<ExceptionlessWebApiPlugin>();
3838
}
3939

40-
private static void ReplaceHttpErrorHandler(HttpConfiguration config) {
40+
private static void ReplaceHttpErrorHandler(HttpConfiguration config, ExceptionlessClient exceptionlessClient) {
4141
FilterInfo filter = config.Filters.FirstOrDefault(f => f.Instance is IExceptionFilter);
42-
var handler = new ExceptionlessHandleErrorAttribute();
42+
var handler = new ExceptionlessHandleErrorAttribute(exceptionlessClient);
4343

4444
if (filter != null) {
4545
if (filter.Instance is ExceptionlessHandleErrorAttribute)

0 commit comments

Comments
 (0)