public bool StartService(DtoServiceInfo serviceInfo)
 {
     _serviceController.DisplayName = serviceInfo.Name;
     _serviceController.ServiceName = serviceInfo.Name;
     try
     {
         if (_serviceController.Status.Equals(ServiceControllerStatus.Running) || _serviceController.Status.Equals(ServiceControllerStatus.StartPending))
         {
             _serviceController.Stop();
             LogDelegate?.Invoke("Stopping Scheduler.", LogType.Info);
             _serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
         }
         LogDelegate?.Invoke("Starting Scheduler.", LogType.Info);
         _serviceController.Start();
         _serviceController.WaitForStatus(ServiceControllerStatus.Running);
         ServiceHelper.ChangeStartMode(_serviceController, ServiceStartMode.Automatic);
         LogDelegate?.Invoke($"Scheduler started succesfully with {serviceInfo.UserSettings.SelectedFileExtensionList.Count} Extensions and {serviceInfo.Interval} Hrs Interval.", LogType.Success);
         return(true);
     }
     catch (Exception e)
     {
         LogDelegate?.Invoke("Couldn't start Scheduler.", LogType.Error);
         return(false);
     }
 }
예제 #2
0
        private DtoServiceInfo GenerateInitialServiceInfo()
        {
            var serviceInfo = new DtoServiceInfo
            {
                CreateDateTime         = DateTime.Now,
                Interval               = 5,
                Name                   = "Prevensomware",
                NextServiceRunDateTime = DateTime.Now.AddHours(5)
            };

            new BoServiceInfo().Save(serviceInfo);
            return(serviceInfo);
        }
 public ServiceState GetServiceState(DtoServiceInfo serviceInfo)
 {
     _serviceController.DisplayName = serviceInfo.Name;
     _serviceController.ServiceName = serviceInfo.Name;
     try
     {
         return(_serviceController.Status == ServiceControllerStatus.Running
             ? ServiceState.Running
             : ServiceState.Stopped);
     }
     catch
     {
         LogDelegate("Can't access Scheduler.", LogType.Error);
         return(ServiceState.Stopped);
     }
 }
 public bool StopService(DtoServiceInfo serviceInfo)
 {
     _serviceController.DisplayName = serviceInfo.Name;
     _serviceController.ServiceName = serviceInfo.Name;
     try
     {
         _serviceController.Stop();
         LogDelegate?.Invoke("Stopping Scheduler.", LogType.Info);
         _serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
         LogDelegate?.Invoke("Scheduler stopped successfully.", LogType.Success);
         return(true);
     }
     catch (Exception e)
     {
         LogDelegate?.Invoke("Couldn't stop Scheduler.", LogType.Error);
         return(false);
     }
 }