Candor.Tasks.ServiceProcess.ServiceMonitorWorkerRoleTask.RestartService C# (CSharp) Method

RestartService() protected method

Restarts the windows service, if possible.
protected RestartService ( ) : bool
return bool
        protected bool RestartService()
        {
            try
            {
                if (string.IsNullOrEmpty(ServiceName)) { return false; }

                LogProvider.WarnFormat("Attempting to restart service '{0}'.", Name);

                ServiceController serviceController;
                if (!string.IsNullOrEmpty(ServiceMachineName))
                    serviceController = new ServiceController(
                    ServiceName, ServiceMachineName);
                else
                    serviceController = new ServiceController(ServiceName);

                if (serviceController.Status != ServiceControllerStatus.Stopped)
                {
                    serviceController.Stop();
                    serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
                }

                if (serviceController.Status == ServiceControllerStatus.Stopped)
                {
                    serviceController.Start();
                }

                while (serviceController.Status != ServiceControllerStatus.Running)
                {
                    serviceController.WaitForStatus(ServiceControllerStatus.Running);
                }
                LogProvider.WarnFormat("Restarted service '{0}'.", Name);
                return true;
            }
            catch (Exception ex)
            {
                LogProvider.FatalFormat("Failed to restart service '{0}'.", ex, Name);
                return false;
            }
        }