/// <summary> /// メール送信非同期メソッド /// </summary> /// <param name="log"></param> /// <param name="ptn"></param> private async void sendAlertMail(string log, MailPattern ptn) { await Task.Run(() => { try { Debug.WriteLine("*** SendMailTask start"); // 非シグナル状態にする this.manualResetEvent.Reset(); string message = ptn.Message.Replace("[LOG_MESSAGE]", log); this.smtp.SendMail(ptn.ToAddress, ptn.Subject, message); // メール送信したのでシグナル状態へ this.manualResetEvent.Set(); Debug.WriteLine("*** SendMailTask end"); } catch (Exception ex) { // メール失敗してもシグナルを戻す this.manualResetEvent.Set(); Console.WriteLine(ex.ToString()); } }); }
/// <summary> /// DataTableからデータを取り出す /// </summary> /// <returns></returns> public new List <MailPattern> GetPatterns() { List <MailPattern> list = new List <MailPattern>(); foreach (DataRow dr in this.DataSource.Rows) { string[] strs = new string[6]; strs[0] = dr[1].ToString(); // フラグ strs[1] = dr[2].ToString().Trim(); // 正規表現 strs[2] = dr[3].ToString().Trim(); // コメント strs[3] = dr[4].ToString().Trim(); // アドレス strs[4] = dr[5].ToString().Trim(); // タイトル strs[5] = dr[6].ToString().Trim(); // メッセージ // 正規表現が設定されていないものは無視 if (string.IsNullOrEmpty(strs[1])) { continue; } MailPattern ptn = new MailPattern(strs); list.Add(ptn); } return(list); }
public void IsProperHandlerReturnsFalseIfRuleMailPatternIsNotYearly(MailPattern mailPattern) { // Assemble var mailRule = new MailRule { MailPattern = mailPattern, DayNumber = 4 }; // Act var result = this.matcher.IsProperMatcher(mailRule); // Assert Assert.IsFalse(result); }
/// <summary> /// DataTableにデータを投入する /// </summary> /// <param name="list"></param> public void SetPatterns(List <MailPattern> list) { foreach (MailPattern ptn in list) { MailPattern mp = (MailPattern)ptn; DataRow dr = this.DataSource.NewRow(); dr[0] = this.DataSource.Rows.Count + 1; dr[1] = mp.Enable; dr[2] = mp.RegularExp; dr[3] = mp.Comment; dr[4] = mp.ToAddress; dr[5] = mp.Subject; dr[6] = mp.Message; this.DataSource.Rows.Add(dr); } }
public void IsProperHandlerReturnsFalseIfRuleMailPatternIsNotWeekly(MailPattern mailPattern) { // Assemble var mailRule = new MailRule { MailPattern = mailPattern, DaysOfWeek = new Dictionary <DayOfWeek, bool> { { DayOfWeek.Thursday, true } } }; // Act var result = this.matcher.IsProperMatcher(mailRule); // Assert Assert.IsFalse(result); }
public void IsProperMatcherReturnsFalseIfRuleMailPatternIsNotMonthly(MailPattern mailPattern) { // Assemble var mailRule = new MailRule { MailPattern = mailPattern, DayNumber = 4, DaysOfWeek = new Dictionary <DayOfWeek, bool> { { DayOfWeek.Monday, false } } }; // Act var result = this.matcher.IsProperMatcher(mailRule); // Assert Assert.IsFalse(result); }
public void IsProperHandlerReturnsFalseIfRuleMailPatternIsNotDaily(MailPattern mailPattern) { // Assemble var mailRule = new MailRule { MailPattern = mailPattern, DaysOfWeek = new Dictionary <DayOfWeek, bool> { { DayOfWeek.Friday, true } } }; Assert.IsTrue(mailRule.IsDayOfWeekRestricted, "Test is not configured properly"); // Act var result = this.matcher.IsProperMatcher(mailRule); // Assert Assert.IsFalse(result); }