Example #1
0
        public IActionResult OnPost()
        {
            // Call custom validator
            var validator = new ContactModelValidator();
            var results   = validator.Validate(ContactModel);

            results.AddToModelState(ModelState, "ContactModel.");

            // Check Recaptcha
            if (settings.RecaptchaEnabled)
            {
                var recaptchaService  = new RecaptchaService();
                var recaptchaResponse = recaptchaService.Validate(
                    new RecaptchaSettings
                {
                    Enabled           = true,
                    RecaptchaKey      = settings.RecaptchaSecretKey,
                    RecaptchaResponse = Request.Form["g-recaptcha-response"]
                }, logger);

                if (recaptchaResponse.ServiceResultType != ServiceResultType.Success)
                {
                    ModelState.AddModelError("Recaptcha", recaptchaResponse.Message);
                }
            }

            if (!ModelState.IsValid)
            {
                return(Page());
            }

            HttpContent content  = new StringContent(JsonConvert.SerializeObject(ContactModel), Encoding.UTF8, "application/json");
            var         resultOk = post.Post(settings.APIEndpoint, content) && post.Post(settings.ContactFormWebEndpoint, content);

            if (resultOk)
            {
                return(new RedirectToPageResult("ContactCS", new { s = 1 }));
            }
            else
            {
                Message = "Error calling API.";
                return(Page());
            }
        }
        public IActionResult OnPost([FromBody] ContactModel ContactModel)
        {
            // Call custom validator
            var validator = new ContactModelValidator();
            var results   = validator.Validate(ContactModel);

            results.AddToModelState(ModelState, null);

            // Check Recaptcha
            if (settings.RecaptchaEnabled)
            {
                var recaptchaService  = new RecaptchaService();
                var recaptchaResponse = recaptchaService.Validate(
                    new RecaptchaSettings
                {
                    Enabled           = true,
                    RecaptchaKey      = settings.RecaptchaSecretKey,
                    RecaptchaResponse = ContactModel.RecaptchaResponse
                }, logger);

                if (recaptchaResponse.ServiceResultType != ServiceResultType.Success)
                {
                    ModelState.AddModelError("Recaptcha", recaptchaResponse.Message);
                }
            }

            if (!ModelState.IsValid)
            {
                return(new JsonResult(ModelState.Values));
            }

            HttpContent content  = new StringContent(JsonConvert.SerializeObject(ContactModel), Encoding.UTF8, "application/json");
            var         resultOk = post.Post(settings.APIEndpoint, content) && post.Post(settings.ContactFormWebEndpoint, content);

            return(new JsonResult(new { Status = resultOk ? "OK" : "Error calling API." }));
        }