Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
            }
        }