public async Task Invoke(HttpContext httpContext)
 {
     try
     {
         await _next.Invoke(httpContext);//goto next middleware
     }
     catch (Exception ex)
     {
         httpContext.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;
         httpContext.Response.ContentType = "application/json";
         var    error      = new CustomeServerErrorMsg(DateTime.UtcNow, "Internal server error");
         string jsonString = JsonSerializer.Serialize(error);
         _logger.LogError($"Reference Number {error.ReferenceNumber}");
         _logger.LogError(ex.Message);
         await httpContext.Response.WriteAsync(jsonString, Encoding.UTF8);
     }
 }
 public BankAccountException(CustomeServerErrorMsg errorMsg)
 {
     ErrorMsg = errorMsg;
 }