/// <summary> /// отложенная отправка почты /// </summary> void SendEmailsScheduled(object obj) { SchedulerClass sc = new SchedulerClass(MailSubject, MailBody, ListEmails()); TimeSpan tsSendTime = sc.GetSendTime(SendTime); if (tsSendTime == new TimeSpan()) { MessageBox.Show("Некорректный формат даты"); return; } DateTime dtSendDateTime = (SendDate != new DateTime() ? SendDate: DateTime.Today).Add(tsSendTime); if (dtSendDateTime < DateTime.Now) { MessageBox.Show("Дата и время отправки писем не могут быть раньше, чем настоящее время"); return; } if (FieldsIsEmpty()) { return; } EmailSenderCreate(obj as SecureString); sc.SendMails(dtSendDateTime, emailSender); MessageBox.Show($"Отправка писем запланирована на {dtSendDateTime}"); }
public void TestSendTask() { Debug.WriteLine($"Ожидаем {DateTime.Now:F}...."); Debug.WriteLine($"ОТПРАВКА {DateTime.Now:F}...."); var mailService = new DebugMailService(); var sc = new SchedulerClass(); sc.SendTask(senderTasks, mailService); var countExpected = 20; var countSend = senderTasks.Sum(x => x.IsSendEnd ? 1 : 0); Assert.AreEqual(countExpected, countSend); }
public static void TestInitialize(TestContext context) { Debug.WriteLine("Test Initialize"); sc = new SchedulerClass(); ts = new TimeSpan(); // возвращаем в случае ошибочно введенного времени sc.DatesEmailTexts = new Dictionary <DateTime, string>() { { new DateTime(2016, 12, 24, 22, 0, 0), "text1" }, { new DateTime(2016, 12, 24, 22, 30, 0), "text2" }, { new DateTime(2016, 12, 24, 23, 0, 0), "text3" } }; }
public void TestInitialize() { Debug.WriteLine("Test Initialize"); sc = new SchedulerClass(); ts = new TimeSpan(); //sc.DatesEmailTexts = new Dictionary<DateTime, string>() //{ // {new DateTime(2016, 12, 24, 22, 0, 0), "text1"}, // {new DateTime(2016, 12, 24, 22, 30, 0), "text2"}, // {new DateTime(2016, 12, 24, 23, 0, 0), "text3"} //}; }
public static void TestInitialize(TestContext context) { Debug.WriteLine("Test Initialize"); sc = new SchedulerClass(); ts = new TimeSpan(); // Возвращается в случае ошибочно введённого времени sc.DatesEmailTexts = new System.Collections.Generic.Dictionary <DateTime, string>() { [new DateTime(2016, 12, 24, 22, 0, 0)] = "text1", [new DateTime(2016, 12, 24, 22, 30, 0)] = "text2", [new DateTime(2016, 12, 24, 23, 0, 0)] = "text3" }; }
/// <summary> /// отложенная отправка почты /// </summary> void SendEmailsScheduled(object obj) { if (SendMails.Count == 0) { MessageBoxShow("Для запланированной отправки добавьте хотя бы одно письмо"); return; } if (!IsLoginFill()) { return; } if (SendDatesCorrect() != null) { MessageBoxShow($"Задайте для письма {SendDatesCorrect()} правильную дату и время \n(дата и время отправки не может быть раньше, чем настоящее время)"); return; } SchedulerClass sc = new SchedulerClass(ListEmails()); sc.MessageAfterOneSend += MessageBoxShow; sc.MessageAfterSendAll += MessageBoxShow; sc.MessageAfterPlanning += MessageBoxShow; try { //заполняем словарь sc.DatesEmailTexts = SendMails.ToDictionary(mail => mail.SendDateTime, mail => mail.MailText); #region //так тоже можно заполнить словарь, но тогда нет обращения к сеттеру словаря, где настроена сортировка: //foreach (ListViewItemScheduler mail in SendMails) //{ // if (mail.SendDateTime < DateTime.Now) // { // MessageBoxShow($"Для письма {mail.SendDateTime} заданы не верные дата и время \n(дата и время отправки писем не могут быть раньше, чем настоящее время). \nДанное письмо не будет отправлено."); // continue; // } // sc.DatesEmailTexts.Add(mail.SendDateTime, mail.MailText); //} #endregion } catch (ArgumentException) { MessageBoxShow("Нельзя запланировать два письма на одинаковое время"); return; } EmailSenderCreate(obj); sc.SendMails(_emailSender); }
private void Send() { var sc = new SchedulerClass(); var tsSendTime = sc.GetSendTime(tbTimePicker.Text); if (tsSendTime == new TimeSpan()) { MessageBox.Show("Некорректный формат даты"); return; } var dtSendDateTime = (cldSchedulDateTimes.SelectedDate ?? DateTime.Today).Add(tsSendTime); if (dtSendDateTime < DateTime.Now) { MessageBox.Show("Дата и время отправки писем не могут быть раньше, чем настоящее время"); return; } var emailSender = new EmailSendServiceClass(cbSenderSelect.Text, cbSenderSelect.SelectedValue.ToString()); sc.SendEmails(dtSendDateTime, emailSender, locator.Main.Emails); }
private void BtnSend_Click(object sender, RoutedEventArgs e) { SchedulerClass sc = new SchedulerClass(); TimeSpan tsSendTime = sc.GetSendTime(tbTimePicker.Text); if (tsSendTime == new TimeSpan()) { MessageBox.Show("Некоректный формат даты"); return; } DateTime dtSendTime = (cldSchedulDateTimes.SelectedDate ?? DateTime.Today).Add(tsSendTime); if (dtSendTime < DateTime.Now) { MessageBox.Show("Дата и время отправки не могут быть раньше, чем настоящее время!"); return; } EmailSendServiceClass emailSender = new EmailSendServiceClass(cbSenderSelect.Text, cbSenderSelect.SelectedValue.ToString(), BodyPost.Text, SubjectPost.Text, cbSmtpSelect.Text, int.Parse(((KeyValuePair <string, int>)cbSenderSelect.SelectedItem).Value.ToString())); var locator = (ViewModelLocator)FindResource("Locator"); sc.SendEmails(emailSender, locator.Main.Emails); }
public static void ClassInitialize(TestContext context) { Debug.WriteLine("Class Initialize"); sc = new SchedulerClass(new List <string>()); ts = new TimeSpan(); }