Exemplo n.º 1
0
 private FeatureActivator(ActivationDirection direction, InstallOperation operation, ILog log)
 {
     this.direction = direction;
     this.operation = operation;
     this.log       = log;
     requestedLocs  = InstallProcessControl.GetFeaturedLocations(operation);
 }
Exemplo n.º 2
0
        public static void PerformActivations(ActivationDirection direction, InstallOperation operation, ILog log)
        {
            FeatureActivator factor = new FeatureActivator(direction, operation, log);

            try
            {
                factor.PerformAllActivations();
                return;
            }
            catch (Exception exc)
            {
                log.Error("Error: " + direction.ToString(), exc);
            }
            if (factor.rollback)
            {
                return;
            }
            if (factor.completedLocs.LocationsCount == 0)
            {
                log.Info("No feature de/activations completed, so none to rollback");
                return;
            }

            // Switch actions & execute rollback
            factor.rollback      = true;
            factor.direction     = (factor.direction == ActivationDirection.Activate ? ActivationDirection.Deactivate : ActivationDirection.Activate);
            factor.requestedLocs = factor.completedLocs;
            try
            {
                log.Info("Rollback: " + FeatureActivator.Describe(factor.requestedLocs, factor.direction));
                factor.PerformAllActivations();
            }
            catch (Exception exc)
            {
                log.Error("Error during rollback: " + direction.ToString(), exc);
            }
        }
        public static void PerformActivations(ActivationDirection direction, InstallOperation operation, ILog log)
        {
            FeatureActivator factor = new FeatureActivator(direction, operation, log);
            try
            {
                factor.PerformAllActivations();
                return;
            }
            catch (Exception exc)
            {
                log.Error("Error: " + direction.ToString(), exc);
            }
            if (factor.rollback) return;
            if (factor.completedLocs.LocationsCount == 0)
            {
                log.Info("No feature de/activations completed, so none to rollback");
                return;
            }

            // Switch actions & execute rollback
            factor.rollback = true;
            factor.direction = (factor.direction == ActivationDirection.Activate ? ActivationDirection.Deactivate : ActivationDirection.Activate);
            factor.requestedLocs = factor.completedLocs;
            try
            {
                log.Info("Rollback: " + FeatureActivator.Describe(factor.requestedLocs, factor.direction));
                factor.PerformAllActivations();
            }
            catch (Exception exc)
            {
                log.Error("Error during rollback: " + direction.ToString(), exc);
            }
        }
 private FeatureActivator(ActivationDirection direction, InstallOperation operation, ILog log)
 {
     this.direction = direction;
     this.operation = operation;
     this.log = log;
     requestedLocs = InstallProcessControl.GetFeaturedLocations(operation);
 }