public static void Sendmail(NotificationSchedulerVO vo, List <CreatedFileInfoVO> fileList) { if (vo.EmailServer == SERVERTYPE_INTERNAL) { if (fileList == null) { MailHelper.SendmailInternal(vo); } else { MailHelper.SendmailInternal(vo, fileList); } } else { if (fileList == null) { MailHelper.SendmailExternal(vo); } else { MailHelper.SendmailExternal(vo, fileList); } } }
public void Execute(NotificationSchedulerVO vo) { sd = new SAPDAO("US"); try { var currentList = sd.GetAccountForRenewalData(MonthPeroid.CURRENT_MONTH); var currentFileHelper = new FileHelper <AccountForRenewalVO>(); var currentStageFileInfo = currentFileHelper.CreateCvsFileAtStage(currentList, FILE_SHOT_NAME_CURRENT_MONTH); var lastList = sd.GetAccountForRenewalData(MonthPeroid.LAST_MONTH); var lastFileHelper = new FileHelper <AccountForRenewalVO>(); var lastStageFileInfo = currentFileHelper.CreateCvsFileAtStage(lastList, FILE_SHOT_NAME_LAST_MONTH); var nextList = sd.GetAccountForRenewalData(MonthPeroid.NEXT_MONTH); var nextFileHelper = new FileHelper <AccountForRenewalVO>(); var nextStageFileInfo = currentFileHelper.CreateCvsFileAtStage(nextList, FILE_SHOT_NAME_NEXT_MONTH); var fileList = new List <CreatedFileInfoVO> { currentStageFileInfo, lastStageFileInfo, nextStageFileInfo }; MailHelper.Sendmail(vo, fileList); currentFileHelper.moveCompleteDirectory(currentStageFileInfo); currentFileHelper.moveCompleteDirectory(lastStageFileInfo); currentFileHelper.moveCompleteDirectory(nextStageFileInfo); } catch (Exception e) { log.Error(e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } finally { sd.closeConnection(); }; }
public void Execute(NotificationSchedulerVO vo) { try { if (ShipConfirmEmailUS == "Y") { sdUS = new SAPDAO("US"); var shipmentInfoList_US = sdUS.GetShipmentInfoData(); shipmentInfoList_US.ForEach(x => { MailHelper.SendShipEmailToCustomer(x); sdUS.UpdateIsShipped(x.DocEntry); }); } if (ShipConfirmEmailCA == "Y") { sdCA = new SAPDAO("CA"); var shipmentInfoList_CA = sdCA.GetShipmentInfoData(); shipmentInfoList_CA.ForEach(x => { MailHelper.SendShipEmailToCustomer(x); sdCA.UpdateIsShipped(x.DocEntry); }); } } catch (Exception e) { log.Error(e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } finally { sdUS.closeConnection(); sdCA.closeConnection(); }; }
public void Execute(NotificationSchedulerVO vo) { sd = new SAPDAO("CA"); try { var list = sd.GetValidToShipData(); var fileHelper = new FileHelper <ValidToShipVO>(); var stageFileInfo = fileHelper.CreateCvsFileAtStage(list, FILE_SHOT_NAME); MailHelper.Sendmail(vo, stageFileInfo); fileHelper.moveCompleteDirectory(stageFileInfo); } catch (Exception e) { log.Error(e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } finally { sd.closeConnection(); }; }
public void Execute(NotificationSchedulerVO vo) { sd = new SAPDAO("CA"); try { var list = sd.getTestNoti(); var fileHelper = new FileHelper <TestNotiVO>(); var stageFileInfo = fileHelper.CreateCvsFileAtStage(list, FILE_SHOT_NAME); MailHelper.Sendmail(vo, stageFileInfo); //MailHelper.SendmailAdmin("test", "test", MailHelper.SERVERTYPE_INTERNAL, Path.Combine(stageFileInfo.path, stageFileInfo.fileName)); fileHelper.moveCompleteDirectory(stageFileInfo); } catch (Exception e) { log.Error(e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } finally { sd.closeConnection(); }; }
public void Execute(NotificationSchedulerVO vo) { try { var splitServerName = SERVER_NAME.Split(','); log.Info("============== Api state check =============="); foreach (var serverName in splitServerName) { var urlUS = new UrlHelper().Scheme(SCHEMA) .Host(serverName) .Port(API_PORT) .Path(SAP_US).Path(ITEMPRICE).Path(ACCOUNT_NO).Path(ITEM_CODE) .Extension(EXTENSION) .Build(); var urlCA = new UrlHelper() .Scheme(SCHEMA) .Host(serverName) .Port(API_PORT) .Path(SAP_CA).Path(ITEMPRICE).Path(ACCOUNT_NO).Path(ITEM_CODE) .Extension(EXTENSION) .Build(); Console.WriteLine("======="); Console.WriteLine(urlUS); Console.WriteLine(urlCA); ApiServerStateCheck(serverName, SAP_US, urlUS); ApiServerStateCheck(serverName, SAP_CA, urlCA); } log.Info("============================================="); } catch (Exception e) { log.Error(e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } }
public List <NotificationSchedulerVO> getScheduler() { SqlDataReader rdr = null; var tdlist = new List <NotificationSchedulerVO>(); string specialRunOnly = (ConfigurationManager.AppSettings["SpecialRunOnly"] == "Y"?"1":"0"); try { var sqlQuery = @"SELECT Id , Department , Cycle , CycleDate , CycleDay , CycleTime , EmailServer , EmailTitle , EmailContent , ReceiverEmail , SenderName , SenderEmail , CcEmail , BccEmail , ProgramClass , Isnull(FirstRunDate,'1900-01-01') FirstRunDate , Isnull(LastRunDate,'1900-01-01') LastRunDate , CreateDate , ModifiedDate , isnull(Active,0) Active , isnull(EmailOnlyDataFlag,0) EmailOnlyDataFlag FROM SAP_NotificationScheduler WHERE SpecialRun = " + specialRunOnly + @" ORDER BY Id"; rdr = getRecordSet(sqlQuery); if (rdr.HasRows) { while (rdr.Read()) { var vo = new NotificationSchedulerVO(); vo.Id = Convert.ToInt32(rdr["Id"]); vo.Department = rdr["Department"].ToString(); vo.Cycle = rdr["Cycle"].ToString(); vo.CycleDate = (rdr["CycleDate"].ToString() == "") ? 0 : Convert.ToInt32(rdr["CycleDate"]); vo.CycleDay = rdr["CycleDay"].ToString(); vo.CycleTime = (rdr["CycleTime"].ToString() == "") ? TODAY.DEFAULT_CYCLE_TIME : rdr["CycleTime"].ToString(); vo.EmailServer = rdr["EmailServer"].ToString(); vo.EmailTitle = rdr["EmailTitle"].ToString(); vo.EmailContent = rdr["EmailContent"].ToString(); vo.ReceiverEmail = rdr["ReceiverEmail"].ToString(); vo.SenderName = rdr["SenderName"].ToString(); vo.SenderEmail = rdr["SenderEmail"].ToString(); vo.CcEmail = rdr["CcEmail"].ToString(); vo.BccEmail = rdr["BccEmail"].ToString(); vo.ProgramClass = rdr["ProgramClass"].ToString(); vo.FirstRunDate = Convert.ToDateTime(rdr["FirstRunDate"]); vo.LastRunDate = Convert.ToDateTime(rdr["LastRunDate"]); vo.CreateDate = rdr["CreateDate"].ToString(); vo.ModifiedDate = rdr["ModifiedDate"].ToString(); vo.Active = Convert.ToInt32(rdr["Active"]); vo.EmailOnlyDataFlag = Convert.ToInt32(rdr["EmailOnlyDataFlag"]); tdlist.Add(vo); } } if (rdr != null && rdr.IsClosed == false) { rdr.Close(); } } catch (SqlException ex) { log.Error("SQL Exception", ex); MailHelper.AddSystemIssueString(GetType().Name, ex.ToString()); } catch (Exception e) { log.Error("Exception", e); MailHelper.AddSystemIssueString(GetType().Name, e.ToString()); } finally { if (rdr != null && rdr.IsClosed == false) { rdr.Close(); } } return(tdlist); }
public static void SendmailExternal(NotificationSchedulerVO vo, List <CreatedFileInfoVO> fileList = null) { var emailServer = System.Configuration.ConfigurationManager.AppSettings["AWSEmailServer"]; var emailUserName = System.Configuration.ConfigurationManager.AppSettings["AWSEmailUserName"]; var emailPassword = System.Configuration.ConfigurationManager.AppSettings["AWSEmailPassword"]; var customerSenderName = vo.SenderName; var customerSenderEmail = vo.SenderEmail; var customerRecipientsEmail = vo.ReceiverEmail; var customerCcEmail = vo.CcEmail; var customerBccEmail = vo.BccEmail; var mail = new MailMessage(); mail.From = new MailAddress(customerSenderEmail, customerSenderName); if (customerRecipientsEmail != null) { mail.To.Add(new MailAddress(customerRecipientsEmail)); } else { mail.To.Add(customerRecipientsEmail); } if (customerCcEmail != null && !"".Equals(customerCcEmail)) { mail.CC.Add(customerCcEmail); } if (customerBccEmail != null && !"".Equals(customerBccEmail)) { mail.Bcc.Add(customerBccEmail); } var attachedFileInfo = new StringBuilder(); if (fileList != null) { var filterFileList = fileList.Where(x => x.filePath != CreatedFileInfoVO.nil).ToList(); if (filterFileList.Count == 0 && vo.EmailOnlyDataFlag == 1) { return; } attachedFileInfo.Append(mailBodyFileInfoHeader); filterFileList.Where(x => x.filePath != CreatedFileInfoVO.nil).ToList().ForEach(x => { attachedFileInfo.Append("<br><br>"); attachedFileInfo.Append($"File name : {x.fileName}"); attachedFileInfo.Append("<br>"); attachedFileInfo.Append($"Data count : {x.dataCount}"); var filePath = Path.Combine(x.filePath, x.fileName); var attachment = new Attachment(filePath); mail.Attachments.Add(attachment); }); attachedFileInfo.Append(mailBodyFileInfoFooter); } mail.Subject = vo.EmailTitle; mail.Body = mailBodyHeader; mail.Body += vo.EmailContent + attachedFileInfo.ToString(); mail.Body += mailBodyEnd; mail.IsBodyHtml = true; try { var Client = new SmtpClient(emailServer); Client.Port = 587; Client.EnableSsl = true; //Client.UseDefaultCredentials = true; Client.Credentials = new NetworkCredential(emailUserName, emailPassword); Client.Send(mail); Client.Dispose(); } catch (SmtpException se) { log.Error("###### Exception caught when sendding email : {0}", se); } }
public static void SendmailInternal(NotificationSchedulerVO vo, List <CreatedFileInfoVO> fileList = null) { var senderName = vo.SenderName; var senderEmail = vo.SenderEmail; var recipientsEmail = vo.ReceiverEmail; var ccRecipientsEmail = vo.CcEmail; var bccRecipientsEmail = vo.BccEmail; var mailServer = System.Configuration.ConfigurationManager.AppSettings["MailServer"]; var mail = new MailMessage(); mail.From = new MailAddress(senderEmail, senderName); //mail.To.Add(new System.Net.Mail.MailAddress("*****@*****.**")); mail.To.Add(recipientsEmail); if (ccRecipientsEmail != null && !"".Equals(ccRecipientsEmail)) { mail.CC.Add(ccRecipientsEmail); } if (bccRecipientsEmail != null && !"".Equals(bccRecipientsEmail)) { mail.Bcc.Add(bccRecipientsEmail); } var attachedFileInfo = new StringBuilder(); if (fileList != null) { var filterFileList = fileList.Where(x => x.filePath != CreatedFileInfoVO.nil).ToList(); if (filterFileList.Count() > 0) { attachedFileInfo.Append(mailBodyFileInfoHeader); filterFileList.Where(x => x.filePath != CreatedFileInfoVO.nil).ToList().ForEach(x => { attachedFileInfo.Append("<br><br>"); attachedFileInfo.Append($" - File name : {x.fileName}"); attachedFileInfo.Append("<br>"); attachedFileInfo.Append($" - Data count : {x.dataCount}"); var filePath = Path.Combine(x.filePath, x.fileName); var attachment = new Attachment(filePath); mail.Attachments.Add(attachment); }); attachedFileInfo.Append(mailBodyFileInfoFooter); } } mail.Subject = vo.EmailTitle; mail.Body = mailBodyHeader; mail.Body += vo.EmailContent.Replace(Environment.NewLine, "<BR>") + attachedFileInfo.ToString(); mail.Body += mailBodyEnd; mail.IsBodyHtml = true; try { var Client = new SmtpClient(mailServer); Client.Send(mail); Client.Dispose(); } catch (SmtpException se) { Console.WriteLine("####################################################"); Console.WriteLine("Exception caught when sendding email "); Console.WriteLine(se); Console.WriteLine("####################################################"); log.Error("Exception caught when sendding email : {0}", se); } }
public Boolean TimeValidationAndInsert(NotificationSchedulerVO x, string CycleType) { var result = false; if (CycleType == CYCLE.HOURLY) { if (x.LastRunDate == new DateTime(1900, 01, 01)) // if first run // 마지막 실행날짜가 없으면, 즉 최초 실행일때 { Console.WriteLine("FIRST RUN ============"); Console.WriteLine("INSERT QUEUE ============"); sdUP.UpdateFirstRunDate(x.Id, DateTime.Now); sdUP.UpdateLastRunDate(x.Id, DateTime.Now); result = true; } else { Console.WriteLine("NOT FIRST RUN ============"); var schour = new DateTime(x.LastRunDate.Year, x.LastRunDate.Month, x.LastRunDate.Day, x.LastRunDate.Hour, 0, 0); var current = new DateTime(TODAY.DETETIME.Year, TODAY.DETETIME.Month, TODAY.DETETIME.Day, TODAY.DETETIME.Hour, 0, 0); var diff = current - schour; if (diff.Hours >= 1) // 전에 돌렸던 시간과 1시간 이상 차이가 난다면 { Console.WriteLine("INSERT QUEUE ============"); result = true; sdUP.UpdateLastRunDate(x.Id, DateTime.Now); } else { Console.WriteLine("HOURLY ALREAY RUN ============"); } } } else { var currentHourMinute = DateTime.ParseExact(TODAY.HOUR, "HH", null); var cycleTime = DateTime.ParseExact(DateTime.ParseExact(x.CycleTime, "HH:mm", null).ToString("HH"), "HH", null); if (DateTime.Compare(currentHourMinute, cycleTime) == 0) // 현재 시간과 사이클 다음을 비교해서 클때만 시작하게하고 { Console.WriteLine("OVER TIME PASS ============"); if (x.LastRunDate == new DateTime(1900, 01, 01)) // if first run // 마지막 실행날짜가 없으면, 즉 최초 실행일때 { Console.WriteLine("FIRST RUN ============"); Console.WriteLine("INSERT QUEUE ============"); sdUP.UpdateFirstRunDate(x.Id, DateTime.Now); sdUP.UpdateLastRunDate(x.Id, DateTime.Now); result = true; } else { var todaty = new DateTime(TODAY.DETETIME.Year, TODAY.DETETIME.Month, TODAY.DETETIME.Day); var scLastSimpleDate = new DateTime(x.LastRunDate.Year, x.LastRunDate.Month, x.LastRunDate.Day); if (todaty == scLastSimpleDate) { Console.WriteLine("TODAY ALREAY RUN ============"); } else { Console.WriteLine("INSERT QUEUE ============"); sdUP.UpdateLastRunDate(x.Id, DateTime.Now); result = true; } } } else { Console.WriteLine("OVER TIME NOT PASS ============"); } } //var currentHourMinute = DateTime.ParseExact(TODAY.HOURMIN, "HH:mm", null); //var cycleTime = DateTime.ParseExact(x.CycleTime, "HH:mm", null); //if (DateTime.Compare(currentHourMinute, cycleTime) == 0) { // 현재 시간과 사이클 다음을 비교해서 클때만 시작하게하고 // Console.WriteLine("OVER TIME PASS ============"); // if (x.LastRunDate == new DateTime(1900, 01, 01)) { // if first run // 마지막 실행날짜가 없으면, 즉 최초 실행일때 // Console.WriteLine("FIRST RUN ============"); // Console.WriteLine("INSERT QUEUE ============"); // sdUP.UpdateFirstRunDate(x.Id, DateTime.Now); // sdUP.UpdateLastRunDate(x.Id, DateTime.Now); // result = true; // } else { // if (CycleType == CYCLE.HOURLY) { // Console.WriteLine("NOT FIRST RUN ============"); // var current = new DateTime(x.LastRunDate.Year, x.LastRunDate.Month, x.LastRunDate.Day, x.LastRunDate.Hour, 0, 0); // var schour = new DateTime(TODAY.DETETIME.Year, TODAY.DETETIME.Month, TODAY.DETETIME.Day, TODAY.DETETIME.Hour, 0, 0); // var diff = current - schour; // if (diff.Hours >= 1) { // 전에 돌렸던 시간과 1시간 이상 차이가 난다면 // Console.WriteLine("INSERT QUEUE ============"); // result = true; // //resultQueue.Add(x); // sdUP.UpdateLastRunDate(x.Id, DateTime.Now); // } else { // Console.WriteLine("HOURLY ALREAY RUN ============"); // } // } else { // 오늘 돌린 기록이 있는지 없는지 // var todaty = new DateTime(TODAY.DETETIME.Year, TODAY.DETETIME.Month, TODAY.DETETIME.Day); // var scLastSimpleDate = new DateTime(x.LastRunDate.Year, x.LastRunDate.Month, x.LastRunDate.Day); // if (todaty == scLastSimpleDate) { // Console.WriteLine("TODAY ALREAY RUN ============"); // } else { // Console.WriteLine("INSERT QUEUE ============"); // sdUP.UpdateLastRunDate(x.Id, DateTime.Now); // result = true; // } // } // } //} else { // Console.WriteLine("OVER TIME NOT PASS ============"); //} return(result); }