public void SendConfig(MirrorConfig config)
        {
            try
            {
                _factory = new ConnectionFactory()
                {
                    HostName = config.Mirror.IpAddress
                };
                _factory.UserName    = "******";
                _factory.Password    = "******";
                _factory.VirtualHost = "/";
                using (var connection = _factory.CreateConnection())
                {
                    using (var channel = connection.CreateModel())
                    {
                        channel.QueueDeclare(queue: "config_settings",
                                             durable: true,
                                             exclusive: false,
                                             autoDelete: false,
                                             arguments: null);

                        var cfgString = Newtonsoft.Json.JsonConvert.SerializeObject(config);
                        var cfgBytes  = Encoding.UTF8.GetBytes(cfgString);
                        channel.BasicPublish(exchange: "",
                                             routingKey: "config_settings",
                                             basicProperties: null,
                                             body: cfgBytes);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Beispiel #2
0
        public MirrorProcessor(IKafkaConsumer kafkaConsumer, IKafkaProducer kafkaProducer, IMirrorTopicHandler mirrorTopicHandler, IEnvironmentConfigProvider environmentConfigProvider)
        {
            _kafkaConsumer      = kafkaConsumer;
            _kafkaProducer      = kafkaProducer;
            _mirrorTopicHandler = mirrorTopicHandler;

            _config = environmentConfigProvider.GetEnvironmentConfig();
        }
Beispiel #3
0
        public MirrorConfig GetEnvironmentConfig(bool useCache = true)
        {
            if (_cachedConfig != null && useCache)
            {
                return(_cachedConfig);
            }

            _cachedConfig = new MirrorConfig
            {
                SourceBrokerList      = GetEnvironmentVariable(SourceBrokerListKey),
                DestinationBrokerList = GetEnvironmentVariable(DestinationBrokerListKey),
                SourceTopics          = GetEnvironmentVariable(TopicsKey),
                ConsumerGroup         = GetEnvironmentVariable(ConsumerGroupKey),
                DestinationTopic      = GetEnvironmentVariable(DestinationTopicKey, false)
            };

            return(_cachedConfig);
        }
Beispiel #4
0
        protected virtual async void OnSettingsChanged(ContentPage sendingPage)
        {
            try
            {
                if (SettingsChanged != null)
                {
                    var mirror = await DbProvider.GetConnection().Table <SmartMirror>().FirstOrDefaultAsync();

                    var feeds            = DbProvider.GetConnection().Table <RssFeed>().Where(rss => rss.Enabled == 1);
                    var weatherLocations = DbProvider.GetConnection().Table <WeatherLocations>().Where(weather => weather.Enabled == 1);
                    var quadrants        = await DbProvider.GetConnection().Table <QuadrantSettings>().ToListAsync();

                    var google = await DbProvider.GetConnection().Table <GoogleEntity>().ToListAsync();

                    if (quadrants.Count == 0)
                    {
                        quadrants = CapstoneApp.Shared.Constants.DefaultQuadrantSettings.Defaults.ToList();
                    }

                    MirrorConfig config = new MirrorConfig
                    {
                        Mirror           = mirror,
                        RssFeeds         = await feeds.ToListAsync(),
                        WeatherLocations = await weatherLocations.ToListAsync(),
                        Configuration    = quadrants,
                        GoogleInfo       = google
                    };
                    var settingsChanged = SettingsChanged;
                    settingsChanged.Invoke(this, new ConfigurationEventArgs(config, sendingPage));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
 public ConfigurationEventArgs(MirrorConfig config, object sendingPage)
 {
     _config = config;
     _page   = (ContentPage)sendingPage;
 }