77
88namespace Rnwood . Smtp4dev . Model
99{
10- public class Smtp4devServer : ISmtp4devServer
10+ public class Smtp4devEngine : ISmtp4devEngine
1111 {
12- private DefaultServer _server ;
13- private ObservableCollection < IMessage > _messages = new ObservableCollection < IMessage > ( ) ;
12+ private Server _server ;
1413 private ISettingsStore _settingsStore ;
14+ private IMessageStore _messageStore ;
1515
16- public Smtp4devServer ( ISettingsStore settingsStore )
16+ public Smtp4devEngine ( ISettingsStore settingsStore , IMessageStore messageStore )
1717 {
1818 _settingsStore = settingsStore ;
19-
20- _messages . CollectionChanged += ( s , ea ) =>
21- {
22- MessagesChanged ? . Invoke ( this , new EventArgs ( ) ) ;
23- } ;
24-
19+ _messageStore = messageStore ;
2520 TryStart ( ) ;
2621 }
2722
28- public IEnumerable < IMessage > Messages
29- {
30- get
31- {
32- return _messages . ToList ( ) ;
33- }
34- }
35-
36- public event EventHandler < EventArgs > MessagesChanged ;
37-
3823 public Exception ServerError { get ; set ; }
3924
4025 public bool IsRunning
@@ -62,8 +47,7 @@ public void TryStart()
6247
6348 try
6449 {
65- _server = new DefaultServer ( settings . Port ) ;
66- _server . MessageReceived += MessageReceived ;
50+ _server = new Server ( new Smtp4devServerBehaviour ( settings , OnMessageReceived , connection => ( IMessageBuilder ) _messageStore . CreateMessage ( connection ) ) ) ;
6751 _server . Start ( ) ;
6852 }
6953 catch ( Exception e )
@@ -77,9 +61,9 @@ private void Stop()
7761 _server . Stop ( true ) ;
7862 }
7963
80- private void MessageReceived ( object sender , MessageEventArgs e )
64+ private void OnMessageReceived ( ISmtp4devMessage message )
8165 {
82- _messages . Add ( e . Message ) ;
66+ _messageStore . AddMessage ( message ) ;
8367 }
8468 }
8569}
0 commit comments