Пример #1
0
        public static void SendFormData(this UmbracoHelper context, object form, bool saveMessage = true, bool showCcList = false, IEnumerable <IPublishedContent> attachments = null)
        {
            Dictionary <object, object> contextItems = getCurrentContextItems();
            HttpContext Context = HttpContext.Current;

            ISubmitDetails       details = form as ISubmitDetails;
            IConfirmationDetails confirm = form as IConfirmationDetails;

            try
            {
                if (!string.IsNullOrEmpty(details.FieldPattern))
                {
                    if (details.FieldPattern.Contains("{0}"))
                    {
                        Refactored.Email.Email.FieldPattern = details.FieldPattern;
                    }
                    else
                    {
                        Refactored.Email.Email.FieldDelimiters = details.FieldPattern;
                    }
                }
                else
                {
                    Refactored.Email.Email.FieldDelimiters = "[]";
                }

                if (details != null && details.HtmlTemplateId > 0 && details.TextTemplateId > 0)
                {
                    string subject  = string.Empty;
                    string htmlBody = string.Empty;
                    string textBody = string.Empty;
                    if (details.HtmlTemplateId > 0)
                    {
                        htmlBody = Refactored.Email.Email.ParseMessageTemplateContent(
                            context.RenderTemplate(details.HtmlTemplateId).ToString(),
                            form, out subject);
                    }

                    if (details.TextTemplateId > 0)
                    {
                        textBody = Refactored.Email.Email.ParseMessageTemplateContent(
                            context.RenderTemplate(details.TextTemplateId).ToString(),
                            form);

                        if (string.IsNullOrEmpty(subject))
                        {
                            subject = new Node(details.TextTemplateId).Name;
                        }
                    }


                    SendEmail(details.FromEmail, details.ToEmail, subject, htmlBody, textBody,
                              bcc: showCcList?null: details.BccEmail,
                              cc: showCcList ? details.BccEmail : null,
                              attachments: attachments);

                    if (saveMessage)
                    {
                        MessageManager.CreateMessage(confirm == null ? details.FromEmail : confirm.SubmitterEmail, details.ToEmail, subject, htmlBody, textBody);
                    }
                }

                if (confirm != null && (confirm.HtmlConfirmationTemplateId > 0 || confirm.TextConfirmationTemplateId > 0))
                {
                    string htmlBody = string.Empty;
                    string textBody = string.Empty;
                    string subject  = string.Empty;

                    if (confirm.HtmlConfirmationTemplateId > 0)
                    {
                        htmlBody = Refactored.Email.Email.ParseMessageTemplateContent(
                            context.RenderTemplate(confirm.HtmlConfirmationTemplateId).ToString(),
                            form, out subject);
                    }

                    if (confirm.TextConfirmationTemplateId > 0)
                    {
                        textBody = Refactored.Email.Email.ParseMessageTemplateContent(
                            context.RenderTemplate(confirm.TextConfirmationTemplateId).ToString(),
                            form);

                        if (string.IsNullOrEmpty(subject))
                        {
                            subject = new Node(confirm.TextConfirmationTemplateId).Name;
                        }
                    }

                    SendEmail(confirm.FromEmail, confirm.SubmitterEmail, subject, htmlBody, textBody, attachments: attachments);
                }
            }
            finally
            {
                updateLocalContextItems(contextItems, Context);
            }
        }
Пример #2
0
        public static void SendFormData(object form, NameValueCollection formData, bool saveMessage = true)
        {
            ISubmitDetails details = form as ISubmitDetails;

            if (details == null)
            {
                throw new ArgumentException("form must implement ISubmitDetails", "form");
            }

            Dictionary <object, object> items = getCurrentContextItems();
            HttpContext          Context      = HttpContext.Current;
            IConfirmationDetails confirm      = form as IConfirmationDetails;

            try
            {
                if (!string.IsNullOrEmpty(details.FieldPattern))
                {
                    if (details.FieldPattern.Contains("{0}"))
                    {
                        Refactored.Email.Email.FieldPattern = details.FieldPattern;
                    }
                    else
                    {
                        Refactored.Email.Email.FieldDelimiters = details.FieldPattern;
                    }
                }
                else
                {
                    Refactored.Email.Email.FieldDelimiters = "[]";
                }

                string subject  = string.Empty;
                string htmlBody = string.Empty;
                string textBody = string.Empty;
                if (details.HtmlTemplateId > 0)
                {
                    htmlBody = Refactored.Email.Email.ParseMessageTemplateContent(
                        umbraco.library.RenderTemplate(details.HtmlTemplateId).ToString(),
                        formData, out subject);
                }

                if (details.TextTemplateId > 0)
                {
                    textBody = Refactored.Email.Email.ParseMessageTemplateContent(
                        umbraco.library.RenderTemplate(details.TextTemplateId).ToString(),
                        formData);

                    if (string.IsNullOrEmpty(subject))
                    {
                        subject = new Node(details.TextTemplateId).Name;
                    }
                }


                Refactored.Email.Email.SendEmail(details.FromEmail, details.ToEmail, subject, htmlBody, textBody, bcc: details.BccEmail);
                if (saveMessage)
                {
                    MessageManager.CreateMessage(confirm == null ? details.FromEmail : confirm.SubmitterEmail, details.ToEmail, subject, htmlBody, textBody);
                }

                if (confirm != null)
                {
                    if (confirm.HtmlConfirmationTemplateId > 0 || confirm.TextConfirmationTemplateId > 0)
                    {
                        htmlBody = string.Empty;
                        textBody = string.Empty;
                        if (confirm.HtmlConfirmationTemplateId > 0)
                        {
                            htmlBody = Refactored.Email.Email.ParseMessageTemplateContent(
                                umbraco.library.RenderTemplate(confirm.HtmlConfirmationTemplateId).ToString(),
                                formData, out subject);
                        }

                        if (confirm.TextConfirmationTemplateId > 0)
                        {
                            textBody = Refactored.Email.Email.ParseMessageTemplateContent(
                                umbraco.library.RenderTemplate(confirm.TextConfirmationTemplateId).ToString(),
                                formData);

                            if (string.IsNullOrEmpty(subject))
                            {
                                subject = new Node(confirm.TextConfirmationTemplateId).Name;
                            }
                        }

                        Refactored.Email.Email.SendEmail(details.FromEmail, confirm.SubmitterEmail, subject, htmlBody, textBody);
                    }
                }
            }
            finally
            {
                updateLocalContextItems(items, Context);
            }
        }