4 changed files with 200 additions and 4 deletions
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
using Bit.Core.Enums; |
||||
using Bit.Core.Models; |
||||
using Bit.Core.Utilities; |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Security; |
||||
using System.ServiceProcess; |
||||
using System.Text; |
||||
using System.Threading.Tasks; |
||||
|
||||
namespace Bit.Core.Services |
||||
{ |
||||
public class ControllerService |
||||
{ |
||||
private static ControllerService _instance; |
||||
|
||||
private ControllerService() |
||||
{ |
||||
Controller = new ServiceController("bitwarden Directory Connector"); |
||||
} |
||||
|
||||
public static ControllerService Instance |
||||
{ |
||||
get |
||||
{ |
||||
if(_instance == null) |
||||
{ |
||||
_instance = new ControllerService(); |
||||
} |
||||
|
||||
return _instance; |
||||
} |
||||
} |
||||
|
||||
public ServiceController Controller { get; private set; } |
||||
public ServiceControllerStatus Status => Controller.Status; |
||||
public string StatusString => Controller == null ? "Unavailable" : Status.ToString(); |
||||
public bool Running => Status == ServiceControllerStatus.Running; |
||||
public bool Paused => Status == ServiceControllerStatus.Paused; |
||||
public bool Stopped => Status == ServiceControllerStatus.Stopped; |
||||
public bool Pending => |
||||
Status == ServiceControllerStatus.ContinuePending || |
||||
Status == ServiceControllerStatus.PausePending || |
||||
Status == ServiceControllerStatus.StartPending || |
||||
Status == ServiceControllerStatus.StopPending; |
||||
|
||||
public bool Start() |
||||
{ |
||||
if(Controller == null || !Stopped) |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
Controller.Start(); |
||||
return true; |
||||
} |
||||
|
||||
public bool Stop() |
||||
{ |
||||
if(Controller == null || !Controller.CanStop) |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
Controller.Stop(); |
||||
return true; |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue