Beispiel #1
0
 void RaiseStateChange(SMTPImpostorHostStateChangeEvent e)
 {
     State = e.Data;
     if (_events != null)
     {
         _events.OnNext(e);
     }
 }
Beispiel #2
0
        public SMTPImpostorHost(
            ILogger <SMTPImpostorHost> logger,
            SMTPImpostorHostSettings settings,
            ISMTPImpostorMessagesStore messages)
        {
            _logger = logger ?? NullLogger <SMTPImpostorHost> .Instance;
            _events = new Subject <ISMTPImpostorEvent>();

            Settings = settings ??
                       throw new ArgumentNullException(nameof(settings));
            Messages = messages;
            _messagesSubscription = Messages.Events.Subscribe(e => _events.OnNext(e));

            StoppedEvent   = new SMTPImpostorHostStateChangeEvent(settings.Id, SMTPImpostorHostStatus.Stopped);
            StartedEvent   = new SMTPImpostorHostStateChangeEvent(settings.Id, SMTPImpostorHostStatus.Started);
            ReceivingEvent = new SMTPImpostorHostStateChangeEvent(settings.Id, SMTPImpostorHostStatus.Receiving);
            ErroredEvent   = new SMTPImpostorHostStateChangeEvent(settings.Id, SMTPImpostorHostStatus.Errored);

            RaiseStateChange(StoppedEvent);
        }