private void Integrate()
        {
            Log.Info(string.Format("{0}:Begin", System.Reflection.MethodBase.GetCurrentMethod().Name));
            // should we integrate this pass?
            bool ShouldIntegration = this.ShouldRunIntegration();

            if (ShouldIntegration)
            {
                IntegrationStatus status = IntegrationStatus.Unknown;
                try
                {
                    Log.Info(string.Format("{0}.{1}:Before _integratable.RunIntegration", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name, System.Reflection.MethodBase.GetCurrentMethod().Name));
                    status = _integratable.RunIntegration(this.IntegrationResult).Status;
                    Log.Info(string.Format("{0}.{1}:results.Status={2}", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name, System.Reflection.MethodBase.GetCurrentMethod().Name, status.ToString()));
                    Log.Info(string.Format("{0}.{1}:After _integratable.RunIntegration", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name, System.Reflection.MethodBase.GetCurrentMethod().Name));
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                }

                // notify the schedule whether the build was successful or not
                Log.Info(string.Format("{0}.{1}:Before _trigger.IntegrationCompleted", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name, System.Reflection.MethodBase.GetCurrentMethod().Name));
                if (status != IntegrationStatus.Unknown && status != IntegrationStatus.Exception)
                {
                    _trigger.IntegrationCompleted();
                }
                Log.Info(string.Format("{0}.{1}:After _trigger.IntegrationCompleted", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name, System.Reflection.MethodBase.GetCurrentMethod().Name));
            }
            else
            {
                _trigger.IntegrationNotRun();
            }
            Log.Info(string.Format("{0}:End", System.Reflection.MethodBase.GetCurrentMethod().Name));
        }
        private void Integrate()
        {
            // should we integrate this pass?
            bool ShouldIntegration = this.ShouldRunIntegration();

            if (ShouldIntegration)
            {
                try
                {
                    _integratable.RunIntegration(this.IntegrationResult);
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                }

                // notify the schedule whether the build was successful or not
                _trigger.IntegrationCompleted();
            }
            else
            {
                _trigger.IntegrationNotRun();
            }
        }