/// <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); }
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; } }
/// <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()); }
/// <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; } }