using Massmailer.Shared.Events; using Massmailer.Shared.Logic; using Massmailer.Shared.Model; using PubSub; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Massmailer.UI { /// /// Interaction logic for MainWindow.xaml /// public partial class MainView : Window { private readonly Hub hub = new Hub(); public MainView() { this.InitializeComponent(); this.hub.Subscribe(this.MailSentEventHandler); } private async void Button_Click(object sender, RoutedEventArgs e) { var smtpSettings = new SmtpSettings { Server = "localhost", Port = 25, Username = "test@test.local", Password = "asdf33asdf", UseSsl = false, SenderEmail = "test@test.local", SenderName = "Massmailer Test", MaxSendRate = 60 }; var mailer = new Mailer(smtpSettings, this.hub); var recipients = new List { "1@test.local", "2@test.local", "3@test.local", "4@test.local", "5@test.local", "6@test.local", "7@test.local", "8@test.local", "9@test.local", "10@test.local" }; await mailer.SendMailsAsync(recipients, "Hello World Subject", "Hello World Body"); } private void MailSentEventHandler(MailSentEvent mailSentEvent) { this.BtnSend.Content = $"mail sent: {mailSentEvent.Recipient} at {mailSentEvent.Timestamp}"; } } }