GenericListAppconfig.cs
---------------------------------
public class GenericListAppconfig
{
private static GenericListAppconfig _GenericListAppconfig = new GenericListAppconfig();
UnitOfWork uom = new UnitOfWork();
private GenericListAppconfig()
{
}
public static GenericListAppconfig intance
{
get{
return _GenericListAppconfig;
}
}
public List<AppConfig> GetAppConfigData(string groupName)
{
var appConfigData = uom.Repository<AppconfigRepository>();
var appConfigList = appConfigData.GetAllAppConfig(groupName);
return appConfigList.ToList();
}
}
EmailNotification.cs
------------------------------
public void SendMail(string toEmail, string subject,string fromEmail, string body,string attachmentFile)
{
MailMessage mail = new MailMessage();
var appDataList = GenericListAppconfig.intance.GetAppConfigData("smtp");
SmtpClient smtpServer = new SmtpClient(appDataList.FirstOrDefault(x => x.name == "smtp.host").Value);
smtpServer.UseDefaultCredentials = true;
smtpServer.Credentials = new System.Net.NetworkCredential(appDataList.FirstOrDefault(x => x.name == "smtp.username").Value, appDataList.FirstOrDefault(x => x.name == "smtp.password").Value);
if (!string.IsNullOrEmpty(attachmentFile))
{
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(attachmentFile);
mail.Attachments.Add(attachment);
}
smtpServer.Port = Convert.ToInt32(appDataList.FirstOrDefault(x => x.name == "smtp.port").Value);
smtpServer.EnableSsl = true;
mail.From = new MailAddress(fromEmail);
mail.IsBodyHtml = true;
mail.To.Add(toEmail);
mail.Subject = subject;
mail.Body = body;
mail.Priority = MailPriority.High;
Task.Factory.StartNew(() => smtpServer.Send(mail), TaskCreationOptions.LongRunning);
}
using EmailNotification in controller
----------------------------------------------
string filePath = Server.MapPath("~/" + Express.Web.Models.GenericListAppconfig.intance.GetAppConfigData("Client").FirstOrDefault(x => x.name == "Client.path").Value + "/" + id + "/" + id + ".pdf");
EmailNotification EmailNotification = new Utils.EmailNotification();
var appDataList = GenericListAppconfig.intance.GetAppConfigData("smtp");
EmailNotification.SendMail(email, "Shipment Details", appDataList.FirstOrDefault(x => x.name == "smtp.noreply").Value, htmlBody.ToString(), filePath);
---------------------------------
public class GenericListAppconfig
{
private static GenericListAppconfig _GenericListAppconfig = new GenericListAppconfig();
UnitOfWork uom = new UnitOfWork();
private GenericListAppconfig()
{
}
public static GenericListAppconfig intance
{
get{
return _GenericListAppconfig;
}
}
public List<AppConfig> GetAppConfigData(string groupName)
{
var appConfigData = uom.Repository<AppconfigRepository>();
var appConfigList = appConfigData.GetAllAppConfig(groupName);
return appConfigList.ToList();
}
}
EmailNotification.cs
------------------------------
public void SendMail(string toEmail, string subject,string fromEmail, string body,string attachmentFile)
{
MailMessage mail = new MailMessage();
var appDataList = GenericListAppconfig.intance.GetAppConfigData("smtp");
SmtpClient smtpServer = new SmtpClient(appDataList.FirstOrDefault(x => x.name == "smtp.host").Value);
smtpServer.UseDefaultCredentials = true;
smtpServer.Credentials = new System.Net.NetworkCredential(appDataList.FirstOrDefault(x => x.name == "smtp.username").Value, appDataList.FirstOrDefault(x => x.name == "smtp.password").Value);
if (!string.IsNullOrEmpty(attachmentFile))
{
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(attachmentFile);
mail.Attachments.Add(attachment);
}
smtpServer.Port = Convert.ToInt32(appDataList.FirstOrDefault(x => x.name == "smtp.port").Value);
smtpServer.EnableSsl = true;
mail.From = new MailAddress(fromEmail);
mail.IsBodyHtml = true;
mail.To.Add(toEmail);
mail.Subject = subject;
mail.Body = body;
mail.Priority = MailPriority.High;
Task.Factory.StartNew(() => smtpServer.Send(mail), TaskCreationOptions.LongRunning);
}
using EmailNotification in controller
----------------------------------------------
string filePath = Server.MapPath("~/" + Express.Web.Models.GenericListAppconfig.intance.GetAppConfigData("Client").FirstOrDefault(x => x.name == "Client.path").Value + "/" + id + "/" + id + ".pdf");
EmailNotification EmailNotification = new Utils.EmailNotification();
var appDataList = GenericListAppconfig.intance.GetAppConfigData("smtp");
EmailNotification.SendMail(email, "Shipment Details", appDataList.FirstOrDefault(x => x.name == "smtp.noreply").Value, htmlBody.ToString(), filePath);

