private void OnListenerBuildStatusChangeEventReceived(object sender, BuildStatusChangeEventArgs e)
        {
            BuildStatusChangeEvent changeEvent = e.EventRaised;

            if (_duplicateEventDetector.IsUnique(changeEvent))
            {
                var deployer = _deployerFactory.Create();
                ExecuteDeploymentProcessDelegate edpd = deployer.ExecuteDeploymentProcess;
                edpd.BeginInvoke(changeEvent, null, null);
            }
            else
            {
                TraceHelper.TraceWarning(TraceSwitches.TfsDeployer, "Received duplicate event '{0}' from TFS.", changeEvent.Title);
            }
        }
        private void OnListenerBuildStatusChangeEventReceived(object sender, BuildStatusChangeEventArgs e)
        {
            BuildStatusChangeEvent changeEvent = e.EventRaised;

            if (_duplicateEventDetector.IsUnique(changeEvent))
            {
                var eventId = _deploymentEventRecorder.RecordTriggered(
                    changeEvent.Id,
                    changeEvent.TeamProject,
                    changeEvent.TeamFoundationServerUrl,
                    changeEvent.ChangedBy,
                    changeEvent.StatusChange.OldValue,
                    changeEvent.StatusChange.NewValue
                    );

                var deployer = _deployerFactory();
                ExecuteDeploymentProcessDelegate executeDelegate = deployer.ExecuteDeploymentProcess;
                executeDelegate.BeginInvoke(changeEvent, eventId, ExecuteDeploymentProcessCallback, executeDelegate);
            }
            else
            {
                TraceHelper.TraceWarning(TraceSwitches.TfsDeployer, "Received duplicate event '{0}' from TFS.", changeEvent.Title);
            }
        }
            public void The_first_event_should_be_unique()
            {
                bool isUnique = _duplicateEventDetector.IsUnique(_event);

                Assert.AreEqual(true, isUnique);
            }