//string currentPage = "/";
        public override void ExecuteAction(FormSubmitContext formSubmitContext, string parameters)
        {
            try
            {
                Log.Error("Error in Form Submission", "");

                string currentPage = "/";
                currentPage = HttpContext.Current.Request.Headers["Referer"];
                if (string.IsNullOrEmpty(currentPage) || currentPage == "/")
                {
                    Uri referrer = HttpContext.Current.Request.UrlReferrer;
                    currentPage = referrer.ToString();
                }
                if (currentPage.Contains("?"))
                {
                    currentPage = currentPage.Split('?')[0];
                }

                if (this.Execute("", formSubmitContext))
                {
                    var thankyou          = currentPage + "?status=success";
                    var defaultUrlOptions = LinkManager.GetDefaultUrlOptions();
                    defaultUrlOptions.SiteResolving     = Settings.Rendering.SiteResolving;
                    formSubmitContext.RedirectUrl       = thankyou;
                    formSubmitContext.RedirectOnSuccess = true;
                    formSubmitContext.Abort();
                }
                else
                {
                    var errorpage         = currentPage + "?status=failed";
                    var defaultUrlOptions = LinkManager.GetDefaultUrlOptions();
                    defaultUrlOptions.SiteResolving     = Settings.Rendering.SiteResolving;
                    formSubmitContext.RedirectUrl       = errorpage;
                    formSubmitContext.RedirectOnSuccess = true;
                    formSubmitContext.Abort();
                }
            }
            catch (Exception e)
            {
                Log.Error("Error in Form Submission" + e.Message, "");
                Log.Error("Error in Form Submission2" + e.StackTrace, "");
                Log.Error("Error in Form Submission1" + e.InnerException.ToString(), "");
            }
        }
Beispiel #2
0
        /// <summary>
        /// Main Execute method responsible for triggering the e-mail submission
        /// </summary>
        /// <param name="data"></param>
        /// <param name="formSubmitContext"></param>
        /// <returns></returns>
        protected override bool Execute(SendMailActionData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));
            if (data == null || !(data.ReferenceId != Guid.Empty))
            {
                return(false);
            }
            var item = Context.Database.GetItem(new ID(data.ReferenceId));

            if (item == null)
            {
                return(false);
            }

            try
            {
                var emailTemplate = new EmailTemplate(item);
                var emailMessage  =
                    new MailMessage
                {
                    // Subject
                    Subject = ReplaceKeywords(emailTemplate.Subject, formSubmitContext),
                    // From
                    From = new MailAddress(ReplaceKeywords(emailTemplate.From, formSubmitContext))
                };
                // To
                FillMailAddressCollection(SplitEmails(ReplaceKeywords(emailTemplate.To, formSubmitContext)), emailMessage.To);
                // CC
                FillMailAddressCollection(SplitEmails(ReplaceKeywords(emailTemplate.Cc, formSubmitContext)), emailMessage.CC);
                // BCC
                FillMailAddressCollection(SplitEmails(ReplaceKeywords(emailTemplate.Bcc, formSubmitContext)), emailMessage.Bcc);
                // Text
                if (!string.IsNullOrEmpty(emailTemplate.MessageRichText))
                {
                    emailMessage.Body       = ReplaceKeywords(emailTemplate.MessageRichText, formSubmitContext);
                    emailMessage.IsBodyHtml = true;
                }
                else
                {
                    emailMessage.Body       = ReplaceKeywords(emailTemplate.MessageText, formSubmitContext);
                    emailMessage.IsBodyHtml = false;
                }

                MainUtil.SendMail(emailMessage);
                return(true);
            }
            catch (Exception e)
            {
                Log.Error($"[SendMail Action] Error sending e-mail based on template {data.ReferenceId}", e, this);
                formSubmitContext.Abort();
                return(false);
            }
        }
Beispiel #3
0
        protected override bool Execute(RedirectActionData data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, "formSubmitContext");

            if (data == null || !(data.ReferenceId != Guid.Empty))
            {
                return(false);
            }

            Item item = Sitecore.Context.Database.GetItem(new ID(data.ReferenceId));

            if (item == null)
            {
                return(false);
            }

            string email          = string.Empty;
            string firstName      = string.Empty;
            string lastName       = string.Empty;
            var    postedFormData = formSubmitContext.Fields;
            var    field          = postedFormData.FirstOrDefault(f => f.Name.Equals("Email"));

            if (field != null)
            {
                var property    = field.GetType().GetProperty("Value");
                var postedEmail = property.GetValue(field);
                email = postedEmail != null?postedEmail.ToString() : string.Empty;
            }

            field = postedFormData.FirstOrDefault(f => f.Name.Equals("First Name"));

            if (field != null)
            {
                var property    = field.GetType().GetProperty("Value");
                var postedField = property.GetValue(field);
                firstName = postedField != null?postedField.ToString() : string.Empty;
            }

            field = postedFormData.FirstOrDefault(f => f.Name.Equals("Last Name"));

            if (field != null)
            {
                var property    = field.GetType().GetProperty("Value");
                var postedField = property.GetValue(field);
                lastName = postedField != null?postedField.ToString() : string.Empty;
            }

            formSubmitContext.Abort();

            return(true);
        }
Beispiel #4
0
 private bool AbortForm(FormSubmitContext formSubmitContext)
 {
     formSubmitContext.Abort();
     return(false);
 }