Exemplo n.º 1
0
        public BlinkService(BlinkConfig config)
        {
            _logger = LogManager.GetCurrentClassLogger();
            _config = config;
            _logger.Debug("Initializing Timer");

            /*_pollingTimer = new Timer(_config.TeamCityConfig.PollingInterval)
             * {
             *  Enabled = true,
             *  AutoReset = true
             * };*/

            _blink = new Blink();

            _logger.Debug("Initialize TeamCity connection");
            //_teamCityClient = new TeamCityClient(_config.TeamCityConfig.HostName, _config.TeamCityConfig.UseSsl);
            _setColor = color =>
            {
                _logger.Debug("Updating Blink(1) indicator");
                if (_blink.IsConnected)
                {
                    _blink.SetColor(color);
                }
            };

            var server = new Server
            {
                Services = { CIPluginHost.BindService(new CIPluginHostImpl()) }
            };
        }
Exemplo n.º 2
0
        public void TestSerializeConfig()
        {
            var targetPath  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.json");
            var blinkConfig = new BlinkConfig
            {
                ColorConfig = new ColorConfig
                {
                    SuccessColor = Color.GreenYellow,
                    ErrorColor   = Color.Red
                }
            };

            File.WriteAllText(targetPath, JsonConvert.SerializeObject(blinkConfig));
        }
Exemplo n.º 3
0
        public static void Main(string[] args)
        {
            Logger.Debug("Starting service");

            try
            {
                _blinkConfig = JsonConvert.DeserializeObject <BlinkConfig>(File.ReadAllText(ConfigFilePath));
            }
            catch (Exception e)
            {
                Logger.Error(e, $"Failed to read configuration from path {ConfigFilePath}");
            }
            if (_blinkConfig == null)
            {
                return;
            }
            HostFactory.Run(configurator =>
            {
                configurator.Service <BlinkService>(service =>
                {
                    service.ConstructUsing(() => new BlinkService(_blinkConfig));
                    service.WhenStarted(s => s.OnStarting());
                    service.WhenStopped(s => s.OnStopping());
                    service.WhenShutdown(s => s.Dispose());
                });

                configurator.StartAutomaticallyDelayed();
                configurator.EnableShutdown();
                configurator.RunAsLocalSystem();
                configurator.SetServiceName("TCBlinkService");
                configurator.SetDisplayName("Teamcity Blink(1) Indicator");
                configurator.SetDescription("TeamCity Blink(1) Indicator");
                configurator.DependsOnEventLog();
                configurator.OnException(exception => { Logger.Error(exception); });
            });
        }