public string GetPayment(string account)
        {
            if (account == "12345")
            {
                var problemDetail = new InsufficientCashProblem
                {
                    Type     = new Uri("https://example.com/probs/out-of-credit").ToString(),
                    Title    = "You do not have enough credit.",
                    Status   = (int)HttpStatusCode.Forbidden,
                    Detail   = "Your current balance is 30, but that costs 50.",
                    Instance = new Uri("/account/12345/msgs/abc", UriKind.Relative).ToString()
                };
                throw new InsufficientCashException(problemDetail);
            }

            return("OK");
        }
        public PaymentModule()
        {
            Get("/payment/{account}", async args =>
            {
                if (args.account == "12345")
                {
                    var problemDetail = new InsufficientCashProblem
                    {
                        Type     = new Uri("https://example.com/probs/out-of-credit").ToString(),
                        Title    = "You do not have enough credit.",
                        Status   = (int)HttpStatusCode.Forbidden,
                        Detail   = "Your current balance is 30, but that costs 50.",
                        Instance = new Uri("/account/12345/msgs/abc", UriKind.Relative).ToString()
                    };
                    throw new InsufficientCashException(problemDetail);
                }

                return(await Response
                       .AsText("OK")
                       .WithStatusCode(HttpStatusCode.OK));
            });
        }