/// <summary> /// Applies the option to the specified host configurator. /// </summary> /// <param name="configurator">The host configurator.</param> public void ApplyTo(HostConfigurator configurator) { var recoveryHostConfigurator = new ServiceRecoveryHostConfigurator(); foreach (var option in serviceRecoveryOptions.Actions) { switch (option) { case RestartServiceRecoveryAction restartServiceRecoveryAction: recoveryHostConfigurator.RestartService(restartServiceRecoveryAction.Delay / 60000); break; case RestartSystemRecoveryAction restartSystemRecoveryAction: recoveryHostConfigurator.RestartComputer(restartSystemRecoveryAction.Delay / 60000, restartSystemRecoveryAction.RestartMessage); break; case RunProgramRecoveryAction runProgramRecoveryAction: recoveryHostConfigurator.RunProgram(runProgramRecoveryAction.Delay / 60000, runProgramRecoveryAction.Command); break; } } if (this.serviceRecoveryOptions.RecoverOnCrashOnly) { recoveryHostConfigurator.OnCrashOnly(); } recoveryHostConfigurator.SetResetPeriod(this.serviceRecoveryOptions.ResetPeriod); configurator.AddConfigurator(recoveryHostConfigurator); }
public static HostConfigurator EnableServiceRecovery(this HostConfigurator configurator, Action<ServiceRecoveryConfigurator> configureCallback) { if (configurator == null) throw new ArgumentNullException("configurator"); if (configureCallback == null) throw new ArgumentNullException("configureCallback"); var recoveryHostConfigurator = new ServiceRecoveryHostConfigurator(); configureCallback(recoveryHostConfigurator); configurator.AddConfigurator(recoveryHostConfigurator); return configurator; }
public static HostConfigurator EnableServiceRecovery(this HostConfigurator configurator, Action <ServiceRecoveryConfigurator> configureCallback) { if (configurator == null) { throw new ArgumentNullException("configurator"); } if (configureCallback == null) { throw new ArgumentNullException("configureCallback"); } var recoveryHostConfigurator = new ServiceRecoveryHostConfigurator(); configureCallback(recoveryHostConfigurator); configurator.AddConfigurator(recoveryHostConfigurator); return(configurator); }