From a17003b302168735b06a26514554b033126db29a Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 8 Sep 2017 11:41:38 -0400 Subject: [PATCH] fix billing problems --- src/Billing/Startup.cs | 6 ++++- .../ExceptionHandlerFilterAttribute.cs | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/Billing/Utilities/ExceptionHandlerFilterAttribute.cs diff --git a/src/Billing/Startup.cs b/src/Billing/Startup.cs index 5cbfecfefd..f03143a303 100644 --- a/src/Billing/Startup.cs +++ b/src/Billing/Startup.cs @@ -10,6 +10,7 @@ using Bit.Core.Utilities; using Serilog.Events; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection.Extensions; +using Bit.Billing.Utilities; namespace Bit.Billing { @@ -52,7 +53,10 @@ namespace Bit.Billing services.TryAddSingleton(); // Mvc - services.AddMvc(); + services.AddMvc(config => + { + config.Filters.Add(new ExceptionHandlerFilterAttribute()); + }); } public void Configure( diff --git a/src/Billing/Utilities/ExceptionHandlerFilterAttribute.cs b/src/Billing/Utilities/ExceptionHandlerFilterAttribute.cs new file mode 100644 index 0000000000..3a7d0073a6 --- /dev/null +++ b/src/Billing/Utilities/ExceptionHandlerFilterAttribute.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Bit.Billing.Utilities +{ + public class ExceptionHandlerFilterAttribute : ExceptionFilterAttribute + { + public override void OnException(ExceptionContext context) + { + var exception = context.Exception; + if(exception == null) + { + // Should never happen. + return; + } + + var logger = context.HttpContext.RequestServices.GetRequiredService>(); + logger.LogError(0, exception, exception.Message); + } + } +}