public static void UseExceptionConverters(this IApplicationBuilder app, ExceptionConverters options = null)
        {
            if (options == null)
            {
                options = new ExceptionConverters();
            }
            var loggerFactory = app.ApplicationServices.GetService(typeof(ILoggerFactory));

            Assert.State(loggerFactory, nameof(loggerFactory)).NotNull("Cannot find ILoggerFactory");
            app.UseMiddleware <ExceptionConverterMiddleware>(options, loggerFactory);
        }
 public ExceptionConverterMiddleware(RequestDelegate next, ExceptionConverters converters, ILoggerFactory loggerFactory)
 {
     Assert.Argument(next, nameof(next)).NotNull();
     Assert.Argument(loggerFactory, nameof(loggerFactory)).NotNull();
     _next   = next;
     _logger = loggerFactory.CreateLogger(nameof(ExceptionConverterMiddleware));
     foreach (var kv in converters.Converters)
     {
         _converters.Add(kv.Key, kv.Value);
     }
 }