(
"GreenTree.Nachtragsmanagement.DeviationNotificationPlugin.ProcessDeviationReceipt.AgeDaysLevel2", 60);
var template =
"" +
" " +
" {0}" +
" {1}" +
" " +
"";
var templateLevel1 =
"Übersicht \"Offene Vertragsabweichungen älter als {0} Tage\"
" +
"Folgende Vertragsabweichungen haben ein Einreichdatum älter als {0} Tage, sind aber noch keinen Nachtrag zugeordnet:
" +
"";
var templateLevel1List = String.Empty;
if (deviationsLevel1.Any())
{
foreach (var deviation in deviationsLevel1)
{
templateLevel1List += String.Format(
"Baustelle \"{0}\" - " +
"Vertragsabweichung \"{1}\" - " +
"Einreichdatum: {2:dd.MM.yyyy} ({3} Tage)",
deviation.Site == null
? String.Empty
: deviation.Site.CustomNumber,
deviation.CustomNumber,
deviation.ReceiptDate,
(DateTime.Now - deviation.ReceiptDate).Value.Days);
}
}
var resultLevel1List = String.Format(templateLevel1, ageDaysLevel1, templateLevel1List);
var templateLevel2 =
"Übersicht \"Offene Vertragsabweichungen älter als {0} Tage\"
" +
"Folgende Vertragsabweichungen haben ein Einreichdatum älter als {0} Tage, sind aber noch keinen Nachtrag zugeordnet:
" +
"";
var templateLevel2List = String.Empty;
if (deviationsLevel2.Any())
{
foreach (var deviation in deviationsLevel2)
{
templateLevel2List += String.Format(
"Vertragsabweichung \"{0}\" " +
"in Baustelle \"{1}\" - " +
"Einreichdatum: {2:dd.MM.yyyy} ({3} Tage)",
deviation.CustomNumber,
deviation.Site == null
? String.Empty
: deviation.Site.CustomNumber,
deviation.ReceiptDate,
(DateTime.Now - deviation.ReceiptDate).Value.Days);
}
}
var resultLevel2List = String.Format(templateLevel2, ageDaysLevel2, templateLevel2List);
return String.Format(template, resultLevel1List, resultLevel2List);
}
#endregion
#region Mail sending
///
/// Sends a generated mail body to the specified recipients in the mail notification
///
/// The mail notification.
/// The mail subject.
/// The mail body.
public void SendNotification(MailNotification mailNotification, string subject, string body)
{
if (mailNotification == null) return;
var mailServerConfig = _configurationService.GetCurrentConfiguration().MailServerElement;
var smptClient = new SmtpClient(mailServerConfig.SmtpServer, mailServerConfig.Port)
{
EnableSsl = mailServerConfig.UseSsl,
Credentials = new NetworkCredential(
mailServerConfig.Username,
mailServerConfig.Password,
mailServerConfig.Domain)
};
var recipients =
mailNotification.Users
.Select(u => u.MailAddress);
var mailMessage = new MailMessage
{
IsBodyHtml = true,
Subject = subject,
Body = body,
From = new MailAddress("Nachtragsbenachrichtigung@schweerbau.de")
};
foreach (var recipient in recipients)
mailMessage.To.Add(recipient);
smptClient.Send(mailMessage);
}
#endregion
}
}