Пример #1
0
        /// <summary>
        /// 刷新提醒的条件
        /// </summary>
        /// <param name="rate"></param>
        /// <returns></returns>
        private static bool UpdateNoticeCondition(NoticeRate rate)
        {
            bool conditionNoticeByNoticeRate = false;

            switch (rate)
            {
            case NoticeRate.DAILY:
                conditionNoticeByNoticeRate = (!SendStatus.DailySend && DateTime.Now.Hour == githubConf.noticeTime.Hours && DateTime.Now.Minute == githubConf.noticeTime.Minutes);
                break;

            case NoticeRate.WEEK:
                conditionNoticeByNoticeRate = (DayOfWeek.Saturday == DateTime.Now.DayOfWeek && !SendStatus.WeekSend && DateTime.Now.Hour == githubConf.noticeTime.Hours && DateTime.Now.Minute == githubConf.noticeTime.Minutes);
                break;

            case NoticeRate.MONTH:
                conditionNoticeByNoticeRate = (1 == DateTime.Now.Day && !SendStatus.MonthSend && DateTime.Now.Hour == githubConf.noticeTime.Hours && DateTime.Now.Minute == githubConf.noticeTime.Minutes);
                break;

            case NoticeRate.YEAR:
                conditionNoticeByNoticeRate = (1 == DateTime.Now.DayOfYear && !SendStatus.YearSend && DateTime.Now.Hour == githubConf.noticeTime.Hours && DateTime.Now.Minute == githubConf.noticeTime.Minutes);
                break;
            }

            return(conditionNoticeByNoticeRate);
        }
Пример #2
0
        public static void SetSendSatus(NoticeRate rate)
        {
            switch (rate)
            {
            case NoticeRate.DAILY:
                DailySend = true;
                break;

            case NoticeRate.WEEK:
                WeekSend = true;
                break;

            case NoticeRate.MONTH:
                MonthSend = true;
                break;

            case NoticeRate.YEAR:
                YearSend = true;
                break;

            case NoticeRate.SPECIAL:
                SpecialSend = true;
                break;
            }
        }
Пример #3
0
 /// <summary>
 /// 用于转换数据类型(实际使用的)
 /// </summary>
 /// <param name="configure"></param>
 public virtual void Convert(Configure <T1> configure)
 {
     this.sender    = configure.sender;
     this.receivers = configure.receivers;
     this.license   = configure.license;
     this.database  = configure.database;
     string[] noticeTimeData = configure.noticetime.Split('-');
     try
     {
         this.noticeTime = new TimeSpan(int.Parse(noticeTimeData[0]), int.Parse(noticeTimeData[1]), 0);
     }
     catch (Exception ex)
     {
         ATLog.Error(ex.Message + "\n" + ex.StackTrace);
     }
     this.isDebug     = configure.debug;
     this.isDebugSend = false;//初始化为false
     this.noticeRate  = (NoticeRate)Enum.Parse(typeof(NoticeRate), configure.noticerate.ToUpper());
     this.mailType    = (MailContentType)Enum.Parse(typeof(MailContentType), configure.mailcontenttype.ToUpper());
 }
Пример #4
0
        /// <summary>
        /// 检查发送状态,判断是否到了重置时间点
        /// </summary>
        /// <param name="rate"></param>
        private static void CheckSendStatusForReset(NoticeRate rate)
        {
            switch (rate)
            {
            case NoticeRate.DAILY:
                if (SendStatus.DailySend && DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0)
                {
                    SendStatus.ResetSendStatus(rate);
                }
                break;

            case NoticeRate.WEEK:
                if (SendStatus.WeekSend && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0)
                {
                    SendStatus.ResetSendStatus(rate);
                }
                break;

            case NoticeRate.MONTH:
                if (SendStatus.MonthSend && DateTime.Now.Day == 1 && DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0)
                {
                    SendStatus.ResetSendStatus(rate);
                }
                break;

            case NoticeRate.YEAR:
                if (SendStatus.YearSend && DateTime.Now.DayOfYear == 1 && DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0)
                {
                    SendStatus.ResetSendStatus(rate);
                }
                break;

            case NoticeRate.SPECIAL:
                //if(SendStatus.SpecialSend)
                // SendStatus.ResetSpecialSend();
                break;
            }
        }