public void ProcessEmail(IDnaSmtpClient client, IDnaLogger logger) { try { using (MailMessage message = new MailMessage()) { message.From = new MailAddress(FromAddress); message.To.Add(ToAddress); message.Subject = Subject; message.SubjectEncoding = Encoding.UTF8; message.Body = Body; message.BodyEncoding = Encoding.UTF8; message.Priority = MailPriority.Normal; client.SendMessage(message); Sent = true; } } catch (Exception e) { string errorMsg = e.Message; if (e.InnerException != null) { errorMsg += " : " + e.InnerException.Message; } logger.Log(System.Diagnostics.TraceEventType.Verbose, errorMsg); LastFailedReason = errorMsg; Sent = false; } }
public static DatabaseEmailProcessor CreateDatabaseEmailProcessor(IDnaLogger logger, IDnaDataReaderCreator dataReaderCreator, int processInterval, int numThreads, int batchSize, string emailServerHostName, string emailServerUsername, string emailServerPassword, bool enableSsl) { ProcessorLogger = logger; if (ProcessorInstance != null) { // It's designed to have only one instance of BIEventProcessor running at a time // so turn the old one off and close it ProcessorInstance.Stop(); ProcessorInstance.Close(); } DataReaderCreator = dataReaderCreator; NumberOfThreads = numThreads; BatchSize = batchSize; SMTPClient = new DnaSmtpClient(emailServerHostName, emailServerUsername, emailServerPassword, enableSsl); int minNumThreads, minCompPorts; ThreadPool.GetMinThreads(out minNumThreads, out minCompPorts); if (minNumThreads < NumberOfThreads) ThreadPool.SetMinThreads(NumberOfThreads, NumberOfThreads); ProcessorInstance = new DatabaseEmailProcessor(processInterval); bool isDebugBuild = false; #if DEBUG isDebugBuild = true; #endif var props = new Dictionary<string, object>() { { "Database connection string", DataReaderCreator != null ? DataReaderCreator.ConnectionString : "NULL" }, { "Interval", processInterval }, { "NumThreads", NumberOfThreads }, { "BatchSize", BatchSize }, { "SMTP Hostname", emailServerHostName }, { "SMTP Username", emailServerUsername}, { "SMTP Enable SSL", enableSsl.ToString()}, { "Debug Build", isDebugBuild ? 1 : 0 } }; logger.Log(TraceEventType.Information, "Created DatabaseEmailProcessor with these params", props); return ProcessorInstance; }
public static BIEventProcessor CreateBIEventProcessor(IDnaLogger logger, IDnaDataReaderCreator theGuideDataReaderCreator, IDnaDataReaderCreator riskModDataReaderCreator, int interval, bool disableRiskMod, bool recRiskModDecOnThreadEntries, int numThreads) { BIEventLogger = logger; if (BIEventProcessorInstance != null) { // It's designed to have only one instance of BIEventProcessor running at a time // so turn the old one off and close it BIEventProcessorInstance.Stop(); BIEventProcessorInstance.Close(); } TheGuideDataReaderCreator = theGuideDataReaderCreator; RiskModDataReaderCreator = riskModDataReaderCreator; DisableRiskMod = disableRiskMod; RecRiskModDecOnThreadEntries = recRiskModDecOnThreadEntries; NumThreads = numThreads; int minNumThreads, minCompPorts, maxNumThreads, maxCompPorts; ThreadPool.GetMinThreads(out minNumThreads, out minCompPorts); ThreadPool.GetMaxThreads(out maxNumThreads, out maxCompPorts); if (minNumThreads < NumThreads) ThreadPool.SetMinThreads(NumThreads, NumThreads); BIEventProcessorInstance = new BIEventProcessor(interval); var props = new Dictionary<string, object>() { { "TheGuide connection string", TheGuideDataReaderCreator != null ? TheGuideDataReaderCreator.ConnectionString : "NULL" }, { "RiskMod connection string", RiskModDataReaderCreator !=null ? RiskModDataReaderCreator.ConnectionString : "NULL" }, { "Interval", interval }, { "DisableRiskMod", DisableRiskMod }, { "RecRiskModDecOnThreadEntries", RecRiskModDecOnThreadEntries }, { "NumThreads", NumThreads }, { "MinThreads", minNumThreads }, { "MinCompPorts", minCompPorts }, { "MaxThreads", maxNumThreads }, { "MaxCompPorts", maxCompPorts } }; BIEventLogger.Log(TraceEventType.Information, "Created BIEventProcessor with these params", props); return BIEventProcessorInstance; }
public void ProcessEmail(IDnaSmtpClient client, IDnaLogger logger) { try { using (var message = new MailMessage()) { message.From = new MailAddress(FromAddress); foreach (var address in ToAddress.Split(';')) { message.To.Add(new MailAddress(address)); } if (CCAddress != null && CCAddress.Length > 0) { message.CC.Add(new MailAddress(CCAddress)); } message.Subject = Subject; message.SubjectEncoding = Encoding.UTF8; message.Body = Body; message.BodyEncoding = Encoding.UTF8; message.Priority = MailPriority.Normal; client.SendMessage(message); Sent = true; } } catch (Exception e) { var errorMsg = e.Message; if (e.InnerException != null) { errorMsg += " : " + e.InnerException.Message; } logger.Log(System.Diagnostics.TraceEventType.Verbose, errorMsg); LastFailedReason = errorMsg; Sent = false; } }