public BuildStatusServer(IBuildIndicator buildIndicator, IBuildStatusChecker buildStatusChecker)
        {
            ParameterCheck.ParameterRequired(buildIndicator, "buildIndicator");
            ParameterCheck.ParameterRequired(buildStatusChecker, "buildStatusChecker");

            this.buildIndicator = buildIndicator;
            this.buildStatusChecker = buildStatusChecker;
            timer = new Timer(Properties.Settings.Default.PollingIntervalSeconds * 1000);
            timer.Elapsed += PollBuildServer;
        }
        protected override void OnStart(string[] args)
        {
            if (Convert.ToBoolean(ConfigurationManager.AppSettings["DebugMode"]))
            {
                //wait 10 seconds to attach debugger
                Thread.Sleep(10000);
                System.Diagnostics.Debugger.Break();
            }

            _buildIndicator = new BuildIndicator();
            _host = new ServiceHost(_buildIndicator);

            var behavior = _host.Description.Behaviors.Find<ServiceBehaviorAttribute>();
            behavior.InstanceContextMode = InstanceContextMode.Single;

            _host.Open();
            Task.Factory.StartNew(() => _buildIndicator.Run());
        }
        protected override void OnStart(string[] args)
        {
            if (Convert.ToBoolean(ConfigurationManager.AppSettings["DebugMode"]))
            {
                //wait 10 seconds to attach debugger
                Thread.Sleep(10000);
                System.Diagnostics.Debugger.Break();
            }

            _buildIndicator = new BuildIndicator();
            _host           = new ServiceHost(_buildIndicator);

            var behavior = _host.Description.Behaviors.Find <ServiceBehaviorAttribute>();

            behavior.InstanceContextMode = InstanceContextMode.Single;

            _host.Open();
            Task.Factory.StartNew(() => _buildIndicator.Run());
        }