101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data.SqlClient;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| 
 | |
| namespace JobReportMailService
 | |
| {
 | |
|     partial class Program
 | |
|     {
 | |
|         static CSetting setting = new CSetting();
 | |
|         static DateTime ChkAutoDate = DateTime.Now.AddDays(-1);
 | |
|         static string vGcode = "EET1P";
 | |
|         static bool cn = false;
 | |
|         static DateTime LastUpdateTime = DateTime.Now.AddHours(-1);
 | |
|         static DateTime ConsoleTime = DateTime.Now.AddDays(-1);
 | |
| 
 | |
| 
 | |
|         static void Main(string[] args)
 | |
|         {
 | |
|             setting = new CSetting();
 | |
|             setting.Load();
 | |
|             if (setting.Xml.Exist() == false)
 | |
|             {
 | |
|                 Console.WriteLine("new setting file make");
 | |
|                 setting.Save();
 | |
|             }
 | |
| 
 | |
| 
 | |
|             while (true)
 | |
|             {
 | |
|                 //등록된 날짜를 확인하여, 해당 일자가 일반 평일 이라면 8시간 체크해서 메일을 보낸다.
 | |
|                 //등록된 날짜가 토,일은 제외한다.
 | |
| 
 | |
|                 var ts = DateTime.Now - LastUpdateTime;
 | |
|                 if (ts.TotalMinutes <= 15)
 | |
|                 {
 | |
|                     //15분 미만이면 동작하지 않는다
 | |
|                     if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
 | |
|                     {
 | |
|                         Console.WriteLine("15분 미만이라 동작하지 않습니다");
 | |
|                         ConsoleTime = DateTime.Now;
 | |
|                     }
 | |
|                 }
 | |
|                 else if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
 | |
|                 {
 | |
|                     //토,일요일에는 동작하지 않는다
 | |
|                     if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
 | |
|                     {
 | |
|                         Console.WriteLine("토/일에는 동작하지 않습니다");
 | |
|                         ConsoleTime = DateTime.Now;
 | |
|                     }
 | |
|                 }
 | |
|                 else if (DateTime.Now.Hour < 9)
 | |
|                 {
 | |
|                     if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
 | |
|                     {
 | |
|                         Console.WriteLine("9시 이전에는 동작하지 않습니다");
 | |
|                         ConsoleTime = DateTime.Now;
 | |
|                     }
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     LastUpdateTime = DateTime.Now;
 | |
|                     try
 | |
|                     {
 | |
|                         WorkDay();
 | |
|                     }
 | |
|                     catch (Exception ex)
 | |
|                     {
 | |
|                         Console.WriteLine("일간업무알림 실패: " + ex.Message);
 | |
|                     }
 | |
| 
 | |
|                     try
 | |
|                     {
 | |
|                         WorkWeek();
 | |
|                     }
 | |
|                     catch (Exception ex)
 | |
|                     {
 | |
|                         Console.WriteLine("주간업무알림 실패: " +ex.Message);
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 System.Threading.Thread.Sleep(60000);   //1분단위로 체크한다
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         static string MailSort(string addr, string except)
 | |
|         {
 | |
|             if (string.IsNullOrEmpty(except)) return addr;
 | |
|             var alist = addr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
 | |
|             var elist = except.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
 | |
|             foreach (var item in elist)
 | |
|                 alist.Remove(item);
 | |
|             if (alist.Count < 1) return string.Empty;
 | |
|             return string.Join(";", alist);
 | |
|         }
 | |
|     }
 | |
| }
 | 
