Base class for email models. Derived classes will provide specific values to substitute placeholders in concrete emails. If nothing to substitute, this class can be used directly.
        private EmailDetails GetEmailDetails(string viewName, EmailMetadata metadata, ControllerContext context)
        {
            using(var stream = _viewReader.GetViewStream(viewName, metadata, context))
            {
                string subject = "";
                string body = "";

                using(var reader = new StreamReader(stream))
                {
                    bool subjectProcessed = false;
                    string line;
                    while((line = reader.ReadLine()) != null)
                    {
                        if(!subjectProcessed)
                        {
                            if(string.IsNullOrEmpty(line))
                            {
                                continue;
                            }

                            subject = line;
                            subjectProcessed = true;
                            continue;
                        }
                        body += line;
                    }
                }

                return new EmailDetails {Body = body, Subject = subject};
            }
        }
Esempio n. 2
0
        private EmailDetails GetEmailDetails(string viewName, EmailMetadata metadata, ControllerContext context)
        {
            using (var stream = _viewReader.GetViewStream(viewName, metadata, context))
            {
                string subject = "";
                string body    = "";

                using (var reader = new StreamReader(stream))
                {
                    bool   subjectProcessed = false;
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (!subjectProcessed)
                        {
                            if (string.IsNullOrEmpty(line))
                            {
                                continue;
                            }

                            subject          = line;
                            subjectProcessed = true;
                            continue;
                        }
                        body += line;
                    }
                }

                return(new EmailDetails {
                    Body = body, Subject = subject
                });
            }
        }
        public MailMessage RenderMessage(string viewName, EmailMetadata metadata, ControllerContext context)
        {
            var details = GetEmailDetails(viewName, metadata, context);

            var result = new MailMessage
            {From = metadata.From, Subject = details.Subject, Body = details.Body, IsBodyHtml = metadata.IsHtmlEmail};
            metadata.To.ForEach(x => result.To.Add(x));
            metadata.Cc.ForEach(x => result.CC.Add(x));
            metadata.Bcc.ForEach(x => result.Bcc.Add(x));

            return result;
        }
Esempio n. 4
0
        public MailMessage RenderMessage(string viewName, EmailMetadata metadata, ControllerContext context)
        {
            var details = GetEmailDetails(viewName, metadata, context);

            var result = new MailMessage
            {
                From = metadata.From, Subject = details.Subject, Body = details.Body, IsBodyHtml = metadata.IsHtmlEmail
            };

            metadata.To.ForEach(x => result.To.Add(x));
            metadata.Cc.ForEach(x => result.CC.Add(x));
            metadata.Bcc.ForEach(x => result.Bcc.Add(x));

            return(result);
        }