public void Send(string mailFrom, string mailCC, string workspaceServerPath, DateTime startTime, DateTime endTime, string timeElapsed, Collection<CompileResult> errors, Collection<CompileResult> warnings)
        {
            ADHelper adHelper = new ADHelper(userName, password, adServer);

            string bodyHtml = MailHelper.GetBodyHtml();

            List<string> mailTo = new List<string>();
            List<string> displayNames = new List<string>();

            string mailSubject = "【待解决】 编译问题";
            string descTD = "<td width=\"60\"><p align=\"center\" style=\"text-align: center\"><span class=\"desc\">{0}</span></p></td>";
            string detailTDBold = "<td width=\"800\"><p align=\"left\" style=\"text-align: left\"><span class=\"detail\" style=\"font-weight: bold\">{0}</span></p></td>";
            string detailTD = "<td width=\"800\"><p align=\"left\" style=\"text-align: left\"><span class=\"detail\">{0}</span></p></td>";

            #region  errorBody
            if (errors != null && errors.Count > 0)
            {
                StringBuilder errorBody = new StringBuilder();
                errorBody.Append("<br /><div style=\"margin-left: .5in\"><span class=\"errorTitle\">编译错误:</span>");
                foreach (var error in errors)
                {
                    mailTo.Add(error.OwnerMail);
                    errorBody.Append("<table border=\"1\">");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "责任人");
                    error.OwnerDisplayName = adHelper.GetUserDisplayName(error.OwnerName);
                    displayNames.Add(error.OwnerDisplayName);
                    errorBody.AppendFormat(detailTDBold, string.Format(CultureInfo.InvariantCulture, "{0}({1})", error.OwnerDisplayName, error.OwnerName));
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "签入时间");
                    errorBody.AppendFormat(detailTD, error.CreationDate);
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "文件位置");
                    errorBody.AppendFormat(detailTD, error.ServerPath);
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "详细信息");
                    errorBody.AppendFormat(detailTD, error.CompileDetail);
                    errorBody.Append("</tr>");
                    errorBody.Append("</table>");
                }
                errorBody.Append("</div>");
                bodyHtml = bodyHtml.Replace("{%errorBody%}", errorBody.ToString());
            }
            else
            {
                bodyHtml = bodyHtml.Replace("{%errorBody%}", string.Empty);
            }
            #endregion

            #region warningBody
            if (warnings != null && warnings.Count > 0)
            {
                StringBuilder warningBody = new StringBuilder();
                warningBody.Append("<br /><div style=\"margin-left: .5in\"><span class=\"warningTitle\">编译警告:</span>");
                foreach (var warning in warnings)
                {
                    mailTo.Add(warning.OwnerMail);
                    warningBody.Append("<table border=\"1\">");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "责任人");
                    warning.OwnerDisplayName = adHelper.GetUserDisplayName(warning.OwnerName);
                    displayNames.Add(warning.OwnerDisplayName);
                    warningBody.AppendFormat(detailTDBold, string.Format(CultureInfo.InvariantCulture, "{0}({1})", warning.OwnerDisplayName, warning.OwnerName));
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "签入时间");
                    warningBody.AppendFormat(detailTD, warning.CreationDate);
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "文件位置");
                    warningBody.AppendFormat(detailTD, warning.ServerPath);
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "详细信息");
                    warningBody.AppendFormat(detailTD, warning.CompileDetail);
                    warningBody.Append("</tr>");
                    warningBody.Append("</table>");
                }
                warningBody.Append("</div>");
                bodyHtml = bodyHtml.Replace("{%warningBody%}", warningBody.ToString());
            }
            else
            {
                bodyHtml = bodyHtml.Replace("{%warningBody%}", string.Empty);
            }
            #endregion

            displayNames = displayNames.Distinct().ToList<string>();
            StringBuilder mailNames = new StringBuilder();
            foreach (var t in displayNames)
            {
                mailNames.Append(t.Format<string>("{0}、"));
            }
            if (mailNames.Length > 0)
            {
                mailNames = mailNames.Remove(mailNames.Length - 1, 1);
            }

            bodyHtml = bodyHtml.Replace("{%workspaceServerPath%}", workspaceServerPath);
            bodyHtml = bodyHtml.Replace("{%startTime%}", startTime.ToString("yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture));
            bodyHtml = bodyHtml.Replace("{%endTime%}", endTime.ToString("yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture));
            bodyHtml = bodyHtml.Replace("{%timeElapsed%}", timeElapsed);
            bodyHtml = bodyHtml.Replace("{%mailNames%}", mailNames.ToString());

            mailTo = mailTo.Distinct().ToList<string>();

            SendMail(mailFrom, mailTo, mailCC, mailSubject, bodyHtml);
        }
Exemple #2
0
        public void Send(string mailFrom, string mailCC, string workspaceServerPath, DateTime startTime, DateTime endTime, string timeElapsed, Collection <CompileResult> errors, Collection <CompileResult> warnings)
        {
            ADHelper adHelper = new ADHelper(userName, password, adServer);

            string bodyHtml = MailHelper.GetBodyHtml();

            List <string> mailTo       = new List <string>();
            List <string> displayNames = new List <string>();

            string mailSubject  = "【待解决】 编译问题";
            string descTD       = "<td width=\"60\"><p align=\"center\" style=\"text-align: center\"><span class=\"desc\">{0}</span></p></td>";
            string detailTDBold = "<td width=\"800\"><p align=\"left\" style=\"text-align: left\"><span class=\"detail\" style=\"font-weight: bold\">{0}</span></p></td>";
            string detailTD     = "<td width=\"800\"><p align=\"left\" style=\"text-align: left\"><span class=\"detail\">{0}</span></p></td>";

            #region  errorBody
            if (errors != null && errors.Count > 0)
            {
                StringBuilder errorBody = new StringBuilder();
                errorBody.Append("<br /><div style=\"margin-left: .5in\"><span class=\"errorTitle\">编译错误:</span>");
                foreach (var error in errors)
                {
                    mailTo.Add(error.OwnerMail);
                    errorBody.Append("<table border=\"1\">");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "责任人");
                    error.OwnerDisplayName = adHelper.GetUserDisplayName(error.OwnerName);
                    displayNames.Add(error.OwnerDisplayName);
                    errorBody.AppendFormat(detailTDBold, string.Format(CultureInfo.InvariantCulture, "{0}({1})", error.OwnerDisplayName, error.OwnerName));
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "签入时间");
                    errorBody.AppendFormat(detailTD, error.CreationDate);
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "文件位置");
                    errorBody.AppendFormat(detailTD, error.ServerPath);
                    errorBody.Append("</tr>");
                    errorBody.Append("<tr>");
                    errorBody.AppendFormat(descTD, "详细信息");
                    errorBody.AppendFormat(detailTD, error.CompileDetail);
                    errorBody.Append("</tr>");
                    errorBody.Append("</table>");
                }
                errorBody.Append("</div>");
                bodyHtml = bodyHtml.Replace("{%errorBody%}", errorBody.ToString());
            }
            else
            {
                bodyHtml = bodyHtml.Replace("{%errorBody%}", string.Empty);
            }
            #endregion

            #region warningBody
            if (warnings != null && warnings.Count > 0)
            {
                StringBuilder warningBody = new StringBuilder();
                warningBody.Append("<br /><div style=\"margin-left: .5in\"><span class=\"warningTitle\">编译警告:</span>");
                foreach (var warning in warnings)
                {
                    mailTo.Add(warning.OwnerMail);
                    warningBody.Append("<table border=\"1\">");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "责任人");
                    warning.OwnerDisplayName = adHelper.GetUserDisplayName(warning.OwnerName);
                    displayNames.Add(warning.OwnerDisplayName);
                    warningBody.AppendFormat(detailTDBold, string.Format(CultureInfo.InvariantCulture, "{0}({1})", warning.OwnerDisplayName, warning.OwnerName));
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "签入时间");
                    warningBody.AppendFormat(detailTD, warning.CreationDate);
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "文件位置");
                    warningBody.AppendFormat(detailTD, warning.ServerPath);
                    warningBody.Append("</tr>");
                    warningBody.Append("<tr>");
                    warningBody.AppendFormat(descTD, "详细信息");
                    warningBody.AppendFormat(detailTD, warning.CompileDetail);
                    warningBody.Append("</tr>");
                    warningBody.Append("</table>");
                }
                warningBody.Append("</div>");
                bodyHtml = bodyHtml.Replace("{%warningBody%}", warningBody.ToString());
            }
            else
            {
                bodyHtml = bodyHtml.Replace("{%warningBody%}", string.Empty);
            }
            #endregion

            displayNames = displayNames.Distinct().ToList <string>();
            StringBuilder mailNames = new StringBuilder();
            foreach (var t in displayNames)
            {
                mailNames.Append(t.Format <string>("{0}、"));
            }
            if (mailNames.Length > 0)
            {
                mailNames = mailNames.Remove(mailNames.Length - 1, 1);
            }

            bodyHtml = bodyHtml.Replace("{%workspaceServerPath%}", workspaceServerPath);
            bodyHtml = bodyHtml.Replace("{%startTime%}", startTime.ToString("yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture));
            bodyHtml = bodyHtml.Replace("{%endTime%}", endTime.ToString("yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture));
            bodyHtml = bodyHtml.Replace("{%timeElapsed%}", timeElapsed);
            bodyHtml = bodyHtml.Replace("{%mailNames%}", mailNames.ToString());

            mailTo = mailTo.Distinct().ToList <string>();

            SendMail(mailFrom, mailTo, mailCC, mailSubject, bodyHtml);
        }