Ejemplo n.º 1
0
        /// <summary>
        /// Send an email at the end of the completion of the application.
        /// </summary>
        /// <param name="msg"></param>
        public virtual void Notify(IDictionary msg)
        {
            string successFailMsg = _result.Success ? Name + " Successful" : Name + " Failed";

            // Command line has highest precedence, it overrides config setting.
            bool sendEmailCommandLine = _args.Get <bool>("email", false);
            bool sendEmailConfig      = Conf.GetDefault <bool>("EmailSettings", "enableEmails", false);
            bool sendEmail            = sendEmailCommandLine ? true : sendEmailConfig;

            bool sendEmailOnlyOnFailureCommandLine = _args.Get <bool>("emailOnlyOnFailure", false);
            bool sendEmailOnlyOnFailureConfig      = Conf.GetDefault <bool>("EmailSettings", "enableEmailsOnlyOnFailures", false);
            bool sendEmailOnlyOnFailure            = sendEmailOnlyOnFailureCommandLine ? true : sendEmailOnlyOnFailureConfig;

            if ((sendEmail && !sendEmailOnlyOnFailure) ||
                (sendEmail && sendEmailOnlyOnFailure && !_result.Success))
            {
                var message = new NotificationMessage(null, "", "", "", "");
                message.To      = (string)msg["emailTo"];
                message.From    = (string)msg["emailFrom"];
                message.Subject = msg.Get <string>("emailSubject", successFailMsg);
                message.Body    = BuildSummary(false, null);

                _emailer.Send(message);
            }
        }