private static void ProcessEmailSender(HttpContext context) { if (context.Request["action"] == "getlist") { EmailPlugins emailPlugins = EmailPlugins.Instance(); context.Response.ContentType = "application/json"; context.Response.Write(emailPlugins.GetPlugins().ToJsonString()); } else { if (context.Request["action"] == "getmetadata") { context.Response.ContentType = "text/xml"; EmailSender emailSender = EmailSender.CreateInstance(context.Request["name"]); if (emailSender == null) { context.Response.Write("<xml></xml>"); } else { context.Response.Write(emailSender.GetMetaData().OuterXml); } } } }
public static EmailSender CreateInstance(string name, string configXml) { EmailSender result; if (string.IsNullOrEmpty(name)) { result = null; } else { Type plugin = EmailPlugins.Instance().GetPlugin("EmailSender", name); if (plugin == null) { result = null; } else { EmailSender emailSender = Activator.CreateInstance(plugin) as EmailSender; if (emailSender != null && !string.IsNullOrEmpty(configXml)) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(configXml); emailSender.InitConfig(xmlDocument.FirstChild); } result = emailSender; } } return(result); }
public static EmailPlugins Instance() { if (EmailPlugins.instance == null) { object lockHelper; Monitor.Enter(lockHelper = EmailPlugins.LockHelper); try { if (EmailPlugins.instance == null) { EmailPlugins.instance = new EmailPlugins(); } } finally { Monitor.Exit(lockHelper); } } EmailPlugins.instance.VerifyIndex(); return(EmailPlugins.instance); }