public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("Generating Credit Card");
            ActionResult response;

            try
            {
                CreditCardPost creditCardSelected = await req.ReadAsAsync <CreditCardPost>();

                if (creditCardSelected != null)
                {
                    CreditCardService service = new CreditCardService();
                    log.LogInformation("Getting CreditCardType");

                    CreditCardType creditCardType = service.GetCreditCardTypeById(creditCardSelected.TypeId);
                    if (creditCardType != null)
                    {
                        creditCardType.CustomPrefix = creditCardSelected.CustomPrefix;
                        CreditCard creditCard = service.GenerateCreditCard(creditCardType);

                        response = new OkObjectResult(creditCard);
                    }
                    else
                    {
                        response = new NotFoundObjectResult("CreditCardType doesn't exists");
                    }
                }
                else
                {
                    var errorMessage = "Failed to parse model";
                    log.LogError(errorMessage);
                    response = new BadRequestObjectResult(errorMessage);
                }
            }
            catch (Exception e)
            {
                log.LogError(e.Message, e);
                response = new BadRequestObjectResult("Ineternal Server Error");
            }
            return(response);
        }