private FeatureActivator(ActivationDirection direction, InstallOperation operation, ILog log) { this.direction = direction; this.operation = operation; this.log = log; requestedLocs = InstallProcessControl.GetFeaturedLocations(operation); }
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); } }