public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log
            )
        {
            var options = new GetSecretFunctionOptions("Sample");


            var result = await Factory.Create <IGetOneCustomer, ILogger>(log)
                         .InvokeAsync <HttpRequest, IActionResult>(req, options)
                         .ConfigureAwait(false);

            return(new OkObjectResult(result));
        }
        public static async Task <IActionResult> GetSecret(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "secrets/{name}")] HttpRequest req,
            string name,
            ILogger log)
        {
            IActionResult result;

            try
            {
                var options = new GetSecretFunctionOptions()
                {
                    SecretName = name
                };

                result = await Factory.Create <IGetSecretFunction, ILogger>(log)
                         .InvokeAsync <HttpRequest, IActionResult>(req, options)
                         .ConfigureAwait(false);
            }
            catch (KeyVaultErrorException ex)
            {
                var statusCode = (int)ex.Response.StatusCode;
                var value      = new ErrorModel(statusCode, ex.Body?.Error?.Message);
                result = new ObjectResult(value)
                {
                    StatusCode = statusCode
                };
            }
            catch (Exception ex)
            {
                var statusCode = (int)HttpStatusCode.InternalServerError;
                var value      = new ErrorModel(statusCode, ex.Message);
                result = new ObjectResult(value)
                {
                    StatusCode = statusCode
                };
            }

            return(result);
        }