Esempio n. 1
0
        private IList <string> GetFileAttachmentList(Job job, IMailActionSettings settings)
        {
            var attachmentList = new List <string>();

            if (!DropboxShareLinksAreUsed(job, settings))
            {
                attachmentList.AddRange(job.OutputFiles);
                attachmentList.AddRange(settings.AdditionalAttachments);
            }

            return(attachmentList);
        }
Esempio n. 2
0
        public void ReplaceTokensInMailSettings(Job job, IMailActionSettings mailActionSettings)
        {
            mailActionSettings.Subject = job.TokenReplacer.ReplaceTokens(mailActionSettings.Subject);
            mailActionSettings.Content = job.TokenReplacer.ReplaceTokens(mailActionSettings.Content);

            mailActionSettings.Recipients = job.TokenReplacer.ReplaceTokens(mailActionSettings.Recipients)
                                            .Replace(';', ',');
            mailActionSettings.RecipientsCc = job.TokenReplacer.ReplaceTokens(mailActionSettings.RecipientsCc)
                                              .Replace(';', ',');
            mailActionSettings.RecipientsBcc = job.TokenReplacer.ReplaceTokens(mailActionSettings.RecipientsBcc)
                                               .Replace(';', ',');

            mailActionSettings.AdditionalAttachments = mailActionSettings.AdditionalAttachments
                                                       .Select(aA => job.TokenReplacer.ReplaceTokens(aA))
                                                       .ToList();
        }
Esempio n. 3
0
        private string BuildBody(IMailActionSettings mailSettings)
        {
            var body = mailSettings.Content;

            if (mailSettings.AddSignature)
            {
                var signature = _mailSignatureHelper.ComposeMailSignature();
                if (mailSettings.Html)
                {
                    signature = signature.Replace(Environment.NewLine, "<br>");
                }

                body += signature;
            }

            return(body);
        }
Esempio n. 4
0
        public MailInfo CreateMailInfo(Job job, IMailActionSettings mailSettings)
        {
            _logger.Trace("Create MailInfo for " + mailSettings.GetType().Name.Replace("Settings", " Action."));

            var mailInfo = new MailInfo
            {
                Subject       = mailSettings.Subject,
                Body          = BuildBody(mailSettings),
                Recipients    = mailSettings.Recipients.Replace(';', ','),
                RecipientsCc  = mailSettings.RecipientsCc.Replace(';', ','),
                RecipientsBcc = mailSettings.RecipientsBcc.Replace(';', ','),
                IsHtml        = mailSettings.Html,

                Attachments = GetFileAttachmentList(job, mailSettings)
            };

            return(mailInfo);
        }
Esempio n. 5
0
        private bool DropboxShareLinksAreUsed(Job job, IMailActionSettings mailSettings)
        {
            if (job.Profile.DropboxSettings.Enabled == false || job.Profile.DropboxSettings.CreateShareLink == false)
            {
                return(false);
            }

            if (mailSettings.Content.IndexOf("<Dropbox", StringComparison.InvariantCultureIgnoreCase) < 0)
            {
                return(false);
            }

            var mailTypeName = mailSettings.GetType().Name;

            if (!_actionOrderHelper.IsFirstActionBeforeSecond(job.Profile, nameof(DropboxSettings), mailTypeName))
            {
                _logger.Warn("To use the share links instead of mail attachments, the Dropbox action must be executed before the mail action.");
                return(false);
            }

            return(true);
        }