/// <summary> /// /// </summary> /// <returns></returns> public bool ProcessEmailAlertData() { List<rsp_GetSiteListResult> lstSites = null; string sSendMail = string.Empty; using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { context.GetSetting(0, "SendMailFromEnterprise", "false", ref sSendMail); if (Convert.ToBoolean(sSendMail)) { lstSites = context.GetSiteList().ToList(); LogManager.WriteLog("Count" + lstSites.Count.ToString(), LogManager.enumLogLevel.Info); if (lstSites != null && lstSites.Count > 0) { foreach (rsp_GetSiteListResult site in lstSites) { LogManager.WriteLog("Spawning New Thread", LogManager.enumLogLevel.Info); LogManager.WriteLog("SITE CODE :" + site.SITE_CODE, LogManager.enumLogLevel.Info); workerThread = new Thread((ProcessWorkerThread)) { Name = site.SITE_CODE }; workerThread.Start(site.SITE_CODE); // workerThread.Start("1002"); workerThread.Priority = ThreadPriority.Normal; } // ProcessWorkerThread("1002"); } } else ProcessWorkerThread(string.Empty); } return true; }
/// <summary> /// get teh list of email subscribers for sending alerts. /// </summary> /// <returns></returns> public Dictionary<string, MailMessageGroup> GetEmailSubScribers() { Dictionary<string ,MailMessageGroup> dEmailConfigurations = null; try { using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { List<EmailSubscriberDetailsResult> subscribers = context.GetEmailAlertSubscribers(string.Empty).ToList(); dEmailConfigurations = (from s in subscribers group s by s into g select new // Selection criteria { key = g.Key.TypeName, val = new MailMessageGroup { FromAddress = g.Key.FromMail, ToList = g.Key.ToMail, CCList = g.Key.CCMail, BCCList = g.Key.BCCMail, Encoding = System.Text.Encoding.ASCII.ToString(), Subject = g.Key.SUBJECT } }).ToDictionary(k => k.key, v => v.val); } } catch (Exception ex) { ExceptionManager.Publish(ex); } finally { } return dEmailConfigurations; }
public bool CheckAndUpdateNewCalendar(int MinDays) { LogManager.WriteLog("AC - > inside CheckAndUpdateNewCalendar method", LogManager.enumLogLevel.Info); try { bool result = true; using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { result = Convert.ToBoolean(context.CheckAndUpdateNewCalendar(MinDays)); } return result; } catch (Exception ex) { ExceptionManager.Publish(ex); return false; } }
/// <summary> /// process alerts for each site. /// </summary> /// <param name="siteCode"></param> /// <param name="recordsCount"></param> /// <returns></returns> private bool ProcessRecordsForSite(string siteCode, int perItemprocessInterval) { // declare. int? iRecord = 0; bool bResult = false; string strResult = string.Empty; AlertEntity entity = null; AlertEngine engine = new AlertEngine(); List<UnprocessedRecordsForEmailAlertResult> lstUnprocessedAlerts = null; //process started. // LogManager.WriteLog("Called for site(s) : " + siteCode, LogManager.enumLogLevel.Info); int recordsCount = Convert.ToInt32(ConfigManager.Read("RecordCounttoprocess")); try { //Get all unprocessed email alerts. using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { lstUnprocessedAlerts = context.GetUnprocessedRecordsForEmailAlert(siteCode, recordsCount).ToList(); } //Check if there any records to process. if (lstUnprocessedAlerts != null && lstUnprocessedAlerts.Count > 0) { int count = lstUnprocessedAlerts.Count; LogManager.WriteLog(string.Format(":::> Processing {0:D} Items for Site : {1} on Thread : {2}.", count, siteCode, Thread.CurrentThread.ManagedThreadId), LogManager.enumLogLevel.Info); //Process each alert. foreach (UnprocessedRecordsForEmailAlertResult alert in lstUnprocessedAlerts) { try { GetServerDetails(); entity = new AlertEntity(); if (grpEmailSubscribers == null) return false; foreach (KeyValuePair<string, MailMessageGroup> keys in grpEmailSubscribers) { if (keys.Key == alert.AlertType_Name) { entity.Name = keys.Key; entity.MessageGroup = keys.Value; entity.MessageGroup.MsgContent = "Site Code: " + alert.EMD_SiteCode + "Site Name: "+ alert.SiteName +"----> Alert Message: " + alert.EMD_Content ; if (serverDetails != null) entity.ServerInfo = serverDetails; bResult = engine.SendMail(entity); } } } catch (Exception ex) { ExceptionManager.Publish(ex); bResult = false; strResult = ex.Message; } finally { //Update the process status. using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { if (bResult) { //if successfull. context.UpdateEmailAlertHistoryStatus( Convert.ToInt32(alert.EMD_ID), strResult, 100); bResult = true; } else { //if failure context.UpdateEmailAlertHistoryStatus( Convert.ToInt32(alert.EMD_ID), strResult, -1); bResult = false; } } } } } } catch (Exception ex) { ExceptionManager.Publish(ex); } return iRecord == 0 ? true : false; }
/// <summary> /// get setting value from setting table. /// </summary> /// <param name="SettingName"></param> /// <returns></returns> public static string GetSetting(string SettingName) { string strSetting = string.Empty; try { using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { context.GetSetting(0, SettingName, string.Empty, ref strSetting); } } catch (Exception ex) { ExceptionManager.Publish(ex); } return strSetting; }
public static MailServer GetMailServer() { MailServer lMailServer = null; try { using (DataHelper context = new DataHelper(DatabaseHelper.GetConnectionString())) { MailServerInfoResult lServer = context.GetMailServerInfo().ToList().First(); lMailServer = ( new MailServer { EnableSSL = (bool)lServer.EnableSSL, Password = lServer.PWD, Port = lServer.Port.ToString(), ServerName = lServer.ServerName, UserID = lServer.UID }); } } catch (Exception ex) { ExceptionManager.Publish(ex); lMailServer = new MailServer(); } return lMailServer; }