//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(), ""); } }
/// <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); } }
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); }
private bool AbortForm(FormSubmitContext formSubmitContext) { formSubmitContext.Abort(); return(false); }