PapercutClient GetClient()
        {
            PapercutClient client = _papercutClientFactory();

            client.Port = PapercutClient.ClientPort;
            return(client);
        }
Exemple #2
0
        void DoProcessExchange()
        {
            try
            {
                var exchangeEvent = new AppProcessExchangeEvent();

                // attempt to connect to the backend server...
                using (PapercutClient client = GetClient())
                {
                    if (!client.ExchangeEventServer(ref exchangeEvent))
                    {
                        return;
                    }

                    IsBackendServiceOnline = true;

                    // backend server is online...
                    _logger.Information("Papercut Backend Service Running. Disabling SMTP in App.");
                    _smtpServerCoordinator.SmtpServerEnabled = false;

                    if (!string.IsNullOrWhiteSpace(exchangeEvent.MessageWritePath))
                    {
                        _logger.Debug(
                            "Background Process Returned {@Event} -- Publishing",
                            exchangeEvent);

                        this._messageBus.Publish(exchangeEvent);
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Warning(ex, BackendServiceFailureMessage);
            }
        }
        public void Handle(SettingsUpdatedEvent @event)
        {
            if (!IsBackendServiceOnline)
            {
                return;
            }

            try
            {
                using (PapercutClient client = GetClient())
                {
                    // update the backend service with the new ip/port settings...
                    var smtpServerBindEvent = new SmtpServerBindEvent(
                        Settings.Default.IP,
                        Settings.Default.Port);

                    bool successfulPublish =
                        client.PublishEventServer(smtpServerBindEvent);

                    _logger.Information(
                        successfulPublish
                            ? "Successfully pushed new Smtp Server Binding to Backend Service"
                            : "Papercut Backend Service Failed to Update. Could be offline.");
                }
            }
            catch (Exception ex)
            {
                _logger.Warning(ex, BackendServiceFailureMessage);
            }
        }
Exemple #4
0
        void PublishUpdateEvent(RulesUpdatedEvent @event)
        {
            try
            {
                using (PapercutClient client = GetClient())
                {
                    bool successfulPublish =
                        client.PublishEventServer(@event);

                    _logger.Information(
                        successfulPublish
                            ? "Successfully Updated Rules on Backend Service"
                            : "Papercut Backend Service Failed to Update Rules. Could be offline.");
                }
            }
            catch (Exception ex)
            {
                _logger.Warning(ex, BackendServiceFailureMessage);
            }
        }
        public void Publish <T>(T @event)
            where T : IDomainEvent
        {
            try
            {
                _logger.Information(
                    "Publishing {@" + @event.GetType().Name + "} to the Papercut Client",
                    @event);

                using (PapercutClient client = GetClient())
                {
                    client.PublishEventServer(@event);
                }
            }
            catch (Exception ex)
            {
                _logger.Warning(
                    ex,
                    "Failed to publish {Address} {Port} specified. Papercut Client is most likely not running.",
                    PapercutClient.Localhost,
                    PapercutClient.ClientPort);
            }
        }
Exemple #6
0
 public SingleInstanceService(PapercutClient papercutClient, ILogger logger)
 {
     Logger          = logger;
     _papercutClient = papercutClient;
 }