void RaiseStateChange(SMTPImpostorHostStateChangeEvent e) { State = e.Data; if (_events != null) { _events.OnNext(e); } }
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); }